类MySQL反转
我正在尝试从一个表中提取所有数据,并使用php在其中循环。以下是我当前的查询:类MySQL反转,mysql,database,Mysql,Database,我正在尝试从一个表中提取所有数据,并使用php在其中循环。以下是我当前的查询: SELECT * FROM ExampleTable WHERE StringContains LIKE "%lkjlkjsomeuser@example.comjkjhkjhkjhkjhk,mniu,mk,mkjh%" ExampleTable.StringContains的值类似于'someuser@example.com', 'someuser2@example.com"等等 这不匹配,因为LIKE只查找列值
SELECT
*
FROM
ExampleTable
WHERE
StringContains LIKE "%lkjlkjsomeuser@example.comjkjhkjhkjhkjhk,mniu,mk,mkjh%"
ExampleTable.StringContains的值类似于'someuser@example.com', 'someuser2@example.com"等等
这不匹配,因为LIKE只查找列值的子字符串,而不是相反。关于查找表值是传递字符串的子字符串的行的命令,您有什么想法吗?试试以下方法:
SELECT
*
FROM
ExampleTable
WHERE
'lkjlkjsomeuser@example.comjkjhkjhkjhkjhk,mniu,mk,mkjh' LIKE
CONCAT('%', StringContains, '%')
SELECT *
FROM ExampleTable
WHERE "lkjlkjsomeuser@example.comjkjhkjhkjhkjhk,mniu,mk,mkjh" LIKE
CONCAT("%",StringContains,"%")
关键是要认识到column变量只代表一个字符串,LIKE语句总是比较表单中的两个字符串
类似于“%stringB%”的“stringA”
通常人们使用它来搜索“整个”数据库字段字符串中包含的字符串的“部分”,但您可以轻松地切换它们。唯一需要的额外工具是CONCAT语句,因为您希望数据库字段是部分而不是整体。CONCAT语句在数据库字段字符串周围构建了一个带%的字符串,参数的字符串形式现在等价于
像“%stringA%”一样的“stringB”
只需将像
按相反的顺序排列即可。由于必须添加那些%
,因此必须首先添加到字段:
SELECT *
FROM ExampleTable
WHERE "lkjlkjsomeuser@example.comjkjhkjhkjhkjhk,mniu,mk,mkjh" LIKE CONCAT('%', StringContains, '%');
你试过按顺序排列吗?”someuser@example.com“像StringContains?关于需要添加%符号的注释很有帮助,我没有第一次就尝试了,然后又尝试了一次。”。他们的意思是match StringContains加上它两边的任何东西,所以我们可以在那里匹配测试字符串。