MySQL SELECT查询字符串匹配

JR *_*rne 30 mysql sql string match

通常,在使用SELECT查询数据库时,通常需要查找与给定搜索字符串匹配的记录.

例如:

SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
Run Code Online (Sandbox Code Playgroud)

该查询应该给我所有记录,其中'Bob Smith'出现在名称字段的任何位置.

我想做的是相反的.

我没有找到名称字段中包含"Bob Smith"的所有记录,而是希望找到名称字段位于"Robert Bob Smith III,PhD."中的所有记录,这是查询的字符串参数.

The*_*ter 42

只需转动LIKE

SELECT * FROM customers
WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%')
Run Code Online (Sandbox Code Playgroud)


unc*_*ons 10

您可以使用这样的正则表达式:

SELECT * FROM pet WHERE name REGEXP 'Bob|Smith'; 
Run Code Online (Sandbox Code Playgroud)