Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL选择查询字符串匹配_Sql_Mysql_String_Match - Fatal编程技术网

MySQL选择查询字符串匹配

MySQL选择查询字符串匹配,sql,mysql,string,match,Sql,Mysql,String,Match,通常,使用SELECT查询数据库时,通常希望查找与给定搜索字符串匹配的记录 例如: SELECT * FROM customers WHERE name LIKE '%Bob Smith%'; 该查询将提供“Bob Smith”出现在名称字段中任何位置的所有记录 我想做的恰恰相反 与查找名称字段中包含“Bob Smith”的所有记录不同,我想查找名称字段位于“Robert Bob Smith III,PhD.”中的所有记录,这是查询的一个字符串参数。只需将类似内容转过来即可 SELECT *

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

例如:

SELECT * FROM customers WHERE name LIKE '%Bob Smith%';
该查询将提供“Bob Smith”出现在名称字段中任何位置的所有记录

我想做的恰恰相反


与查找名称字段中包含“Bob Smith”的所有记录不同,我想查找名称字段位于“Robert Bob Smith III,PhD.”中的所有记录,这是查询的一个字符串参数。

只需将类似内容转过来即可

SELECT * FROM customers
WHERE 'Robert Bob Smith III, PhD.' LIKE CONCAT('%',name,'%')

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

SELECT * 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%';
选择计数
将只查询(总计)

C
会将db.table链接到需要索引的名称行

LIKE
应该是OBV


8
将调用DB 8或更低版本中的所有引用(实际上不需要,但我喜欢整洁)

我不确定是否理解。你能举个例子吗?必须同意@Pekka。如果您提供了一些您期望匹配的输入数据和相关搜索项的示例集,则可能是正确的。我试过了,但最后没有用CONCAT。工作起来很有魅力。Thx。这会导致全表扫描吗?有没有使用索引的解决方案?@landon 9720有。唯一可以使用的索引是在使用sqlite的情况下,可以使用“| |”操作符
SELECT*从“Robert Bob Smith III,PhD.”如“%”名称“| |”%”的客户处连接字符串你似乎不明白原来的问题。我在200000行数据库上使用REGXP,但它并没有带来一大堆。。。