我的SQL没有按预期工作。而且我发现它是因为其中一个类似的条款。
我期待以下sql
select * from SomeTable Where "%,2,%" like ",1,2,3,";
给出与
相同的结果select * from SomeTable;
但它实际上什么都没有。
我无法展开",1,2,3,"
而我无法使用find_in_set
,因为我正在使用memsql。
那么有什么其他方法可以确定条目是以逗号分隔的列表字符串,还是我做错了什么?
答案 0 :(得分:3)
我认为你的意思是
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,";
“%,2,%”之类的“,1,2,3”组件始终计算为False。这将给你零结果。
我认为你真正想要的是:
select * from v Where somecolumn like "%,2,%"