最终结果: 数据库表 A表: B表: 操作步骤 主要关键字:FIND_IN_SET.GROUP_CONCAT.LEFT JOIN.GROUP BY 第一步:left join 连接AB表并通过 find_in_set 关联其ID select us.id,us.name,us.hobbyId,hb.name hobby from hobby hb left join user us on find_in_set(hb.id,us.hobbyId) 结果:name 字段名称很多重复,做去重处理
用到ISNULL()函数 例如:SELECT 其他列名,ISNULL(列名,替换值)as 重命名 from 表名 (简单参考:http://www.cnblogs.com/netsa/archive/2011/10/18/2216209.html) 查询某一列值为null:SELECT * FROM test_table WHERE column_1 IS NULL;——————ACCESS下用:select * from test_table where isnull(column_1)
今天发现 批量插入下,自增主键不连续了....... InnoDB AUTO_INCREMENT Lock Modes This section describes the behavior of AUTO_INCREMENT lock modes used to generate auto-increment values, and how each lock mode affects replication. Auto-increment lock modes are configured
Python Python对MySQL数据库操作使用的是sqlalchemy这个ORM框架 #一本书可以有多个作者,一个作者又可以出版多本书 from sqlalchemy import Table, Column, Integer,String,DATE, ForeignKey from sqlalchemy.orm import relationship from sqlalchemy.ext.declarative import declarative_base from sqlalche
什么是竞态问题? 假设有一个计数器,首先当前值自增长,然后获取到自增长之后的当前值.自增长后的值有可能被有些操作用来当做唯一性标识,因此并发的操作不能允许取得相同的值. 为什么不能使用使用UPDATE语句更新计数器,然后SELECT语句获取自增长后的当前值?问题在于并发的操作有可能获取到相同的计数器值. CREATE TABLE counters ( id INT NOT NULL UNIQUE, -- 计数器ID,多个计数器可以存在一个表中, value INT -- 计数器当前值 ); --