MySQL实现多个模糊查询和删除指令

MySQL实现多个模糊查询和删除指令

MySQL单表多字段模糊查询的是指实现在单表中对多字段进行多个关键字的模糊查询

查询不存在某些关键词的记录指令:

1
select \* from \`表名\` where \`字段名\` not regexp '关键词1|关键词2|关键词3';

查询存在某些关键词的记录指令:

1
2

select \* from \`表名\` where \`字段名\` regexp '关键词1|关键词2|关键词3';

删除不包含指定关键词的记录指令:

1
2

delete from \`表\` where \`字段\`  not like '%关键词%'

删除包含指定关键词的记录指令:

1
delete from \`表\` where \`字段\` like '%关键词1%' or like '%关键词2%' or like '%关键词3%'

AND

MySQL单表多字段模糊查询也可以通过下面这个SQL查询实现

1
SELECT \* FROM \`magazine\` WHERE CONCAT(\`title\`,\`tag\`,\`description\`) LIKE ‘%关键字%’

但是这样有个问题,如果这三个字段中有值为NULL,则返回的也是NULL,那么这一条记录可能就会被错过,那么要用IFNULL进行判断,则sql改为:

1
2
SELECT \* FROM \`magazine\` WHERE CONCAT(IFNULL(\`title\`,''),IFNULL(\`tag\`,''),IFNULL(\`description\`,'')) LIKE ‘%关键字%’

 类似于如此则可以进行简单的多字段模糊搜索了。