为什么 `"%,2,%" 像 ",1,2,3,"` return 零?
Why `"%,2,%" like ",1,2,3,"` return zero?
我得到一个 SQL 没有按预期工作。我发现这是因为 like 条款之一。
我预计会出现以下情况 sql
select * from SomeTable Where "%,2,%" like ",1,2,3,";
给出与
相同的结果
select * from SomeTable;
但它实际上什么也没给出。
我无法扩展 ",1,2,3,"
,也无法使用 find_in_set
,因为我正在使用 memsql。
那么有没有其他方法可以确定一个条目是在逗号分隔的列表字符串中,还是我做错了什么?
我想你的意思是
select * from SomeTable Where ",1,2,3," LIKE "%,2,%" ;
给出与 SELECT * SomeTable.
相同的结果,因为“,1,2,3”与“%,2,%”一样总是计算为 TRUE,所以。上面的说法确实和
一样
select * from SomeTable;
另一方面在下面的语句中
select * from SomeTable Where "%,2,%" like ",1,2,3,";
像“,1,2,3”这样的“%,2,%”组件总是计算为 False。这会给你零结果。
我想你真正要找的是:
select * from v Where somecolumn like "%,2,%"
我得到一个 SQL 没有按预期工作。我发现这是因为 like 条款之一。
我预计会出现以下情况 sql
select * from SomeTable Where "%,2,%" like ",1,2,3,";
给出与
相同的结果select * from SomeTable;
但它实际上什么也没给出。
我无法扩展 ",1,2,3,"
,也无法使用 find_in_set
,因为我正在使用 memsql。
那么有没有其他方法可以确定一个条目是在逗号分隔的列表字符串中,还是我做错了什么?
我想你的意思是
select * from SomeTable Where ",1,2,3," LIKE "%,2,%" ;
给出与 SELECT * SomeTable.
相同的结果,因为“,1,2,3”与“%,2,%”一样总是计算为 TRUE,所以。上面的说法确实和
select * from SomeTable;
另一方面在下面的语句中
select * from SomeTable Where "%,2,%" like ",1,2,3,";
像“,1,2,3”这样的“%,2,%”组件总是计算为 False。这会给你零结果。
我想你真正要找的是:
select * from v Where somecolumn like "%,2,%"