mysql-sql语句样例

查询

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。

SELECT 字段 FROM 表 WHERE 某字段 Like 条件

使用 OR 和 AND 来增加条件
SELECT * FROM `t_company` where f_name like 't%' OR f_company_id like '6%'

正则模式

用到的时候再添加,目前模糊匹配够用了

存在更新,不存在插入

如果插入的数据会导致UNIQUE 索引或PRIMARY KEY发生冲突/重复,则执行UPDATE语句

sql = str::cstr::format("insert into %s (f_no,f_name,f_addr,f_update_datetime) values ('%s','%s','%s','%s') ON DUPLICATE KEY UPDATE \
f_name='%s',f_addr='%s',f_update_datetime='%s'",
it.tableName.c_str(), itJson["villageCode"].asString().c_str(),
f_name.c_str(),f_addr.c_str(),f_update_datetime.c_str(),
f_name.c_str(),f_addr.c_str(),f_update_datetime.c_str());

存在替换,不存在插入

如果插入的数据会导致UNIQUE 索引或PRIMARY KEY发生冲突/重复,则先删除旧数据再插入最新的数据,

// mysql 已验证
sql = str::cstr::format("replace into %s (f_no,f_name) values (%I64d,'%s')",
it.tableName.c_str(), itJson[paramKey.c_str()].asInt64(),
itJson["name"].asString().c_str());

避免重复插入

关键字/句:insert ignore into,如果插入的数据会导致UNIQUE索引或PRIMARY KEY发生冲突/重复,则忽略此次操作/不插入数据

INSERT IGNORE INTO `student`(`name`, `age`) VALUES('Jack', 18);

更新语句

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;