多个条件的匹配
传统的or操作符
SELECT * FROM goods WHERE company="公司A" OR company="公司B" OR company="公司C";
使用in解决问题
SELECT * FROM goods WHERE company IN ("公司A","公司C");
操作符in的主流用法
在in表达式中使用算术表达式
SELECT name,price FROM goods WHERE price IN (5*9);
将列作为in的选项值
SELECT * FROM goods WHERE 60 IN (price,reserve);
使用not in查询不满足多个条件的数据
SELECT * FROM goods
WHERE 60 NOT IN (price,reserve);
SELECT * FROM goods WHERE reserve NOT IN (20,60,100);
查询指定行的信息
输入以下代码报错:
SELECT * FROM goods
WHERE id NOT IN (SELECT id from goods LIMIT 2);
like操作符-使用通配符实现模糊查询
通配符%
%表示由零个或多个字符组成的任意字符串。
商%表示商开头的模糊查询,%商表示商结尾的,%商%表示任何位置的。
SELECT name,price,reserve FROM goods
WHERE name LIKE "商%";
通配符_
可以指定字符个数
SELECT name,price,reserve FROM goods WHERE name LIKE "商__";
通配符[],mysql不支持
SELECT name,price,reserve FROM goods WHERE name LIKE '[商 品]%';/*商或品开头 */
SELECT name,price,reserve FROM goods WHERE name LIKE '%[商 7]';/*商或7结尾 */
SELECT name,price,reserve FROM goods WHERE price LIKE '%[5-7]';/*5或7结尾 */
SELECT name,price,reserve FROM goods WHERE name LIKE '[a-z]%';/*a或z开头 */
通配符[^]
SELECT name,price,reserve FROM goods WHERE name LIKE '[^商 品]%';/*查询不是商或品开头 */
SELECT name,price,reserve FROM goods WHERE name LIKE '%[^商 7]';/*查询不是商或7结尾 */
SELECT name,price,reserve FROM goods WHERE price LIKE '%[^5-7]';/*查询不是5或7结尾 */
SELECT name,price,reserve FROM goods WHERE name LIKE '[^a-z]%';/*查询不是a或z开头 */