Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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反转_Mysql_Database - Fatal编程技术网

类MySQL反转

类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只查找列值

我正在尝试从一个表中提取所有数据,并使用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
'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加上它两边的任何东西,所以我们可以在那里匹配测试字符串。