通常,使用SELECT查询数据库时,常常需要查找与给定搜索字符串匹配的记录。
例如:
SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
这个查询应该给我返回所有在姓名字段中出现“Bob Smith”的记录。
而我想做的是相反的。
我想找到所有姓名字段为查询中的字符串参数“Robert Bob Smith III, PhD.”的记录,而不是找到所有包含“Bob Smith”在姓名字段中的记录。
通常,使用SELECT查询数据库时,常常需要查找与给定搜索字符串匹配的记录。
例如:
SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
这个查询应该给我返回所有在姓名字段中出现“Bob Smith”的记录。
而我想做的是相反的。
我想找到所有姓名字段为查询中的字符串参数“Robert Bob Smith III, PhD.”的记录,而不是找到所有包含“Bob Smith”在姓名字段中的记录。
把 LIKE 反过来
SELECT * FROM customers
WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%')
SELECT * FROM customers WHERE 'Robert Bob Smith III, PhD.' LIKE '%' || name || '%' ;
- srjSELECT * FROM pet WHERE name REGEXP 'Bob|Smith';
不正确:
SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
改为:
select count(*)
from rearp.customers c
where c.name LIKE '%Bob smith.8%';
select count
会查询(总数)
C
将链接db.table到您需要的名称行以进行索引
LIKE
应该是明显的
8
将调用DB中所有8或更少的引用(不是必需的,但我喜欢整洁)