2011-11-16 103 views
0

我试图解决拉从表中的所有数据,并通过它循环通过它。这里是我当前的查询:MySQL喜欢反转

SELECT 
* 
FROM 
ExampleTable 
WHERE 
StringContains LIKE "%[email protected],mniu,mk,mkjh%" 

ExampleTable.StringContains有看起来像“[email protected]”,“[email protected]”值等

这并不匹配,因为只喜欢找到列值的子字符串,而不是其他方式。任何关于命令查找表值是传递字符串的子字符串的想法?

+0

你试过有它的顺序:“[email protected]” LIKE StringContains? –

回答

2

只是要在opposit顺序LIKE。既然你要添加这些%你必须concatenate领域的第一:

SELECT * 
FROM ExampleTable 
WHERE "[email protected],mniu,mk,mkjh" LIKE CONCAT('%', StringContains, '%'); 
+0

关于需要添加%符号的评论很有帮助,我没有第一次尝试,然后再次尝试。它们表示匹配StringContains以及其两侧的其他任何内容,所以我们可以在那里匹配测试字符串。 –

3

试试这个:

SELECT * 
FROM ExampleTable 
WHERE "[email protected],mniu,mk,mkjh" LIKE 
     CONCAT("%",StringContains,"%") 

关键是要认识到,列变量只是表示一个字符串,等等语句总是在形式

"stringA" LIKE '%stringB%'

比较两个字符串

通常人们使用它来搜索“整个”数据库字段字符串中包含的字符串的“部分”,但您可以轻松切换它们。您需要的唯一额外工具是CONCAT语句,因为您希望数据库字段成为部分而不是整体。该CONCAT声明建立与周围的数据库字段字符串%的字符串,以及参数的字符串形式是相当于现在

"stringB" LIKE "%stringA%"

+0

+1你们好像闪电 –