[英]MySQL using like to match specific string
在我的列中,我可以使用诸如“ data +”或“ data + data + data + ..(undefined times).. +”之类的字符串,我只需要获取具有多个数据而不仅仅是一个数据的列。
我尝试过
mycol NOT LIKE '%+'
但这没用...
其实我不知道数据是一个可变的字符串:“ blabla”或“ aString”或“ whatever”
如果我在专栏中
'jdsjpgsg+jdsjpgsg+', 'dvgff+', 'ffef+eefds+ghghgh+'
我只想选择
'jdsjpgsg+jdsjpgsg+',
'ffef+eefds+ghghgh+',
不是'dvgff+'
!
如果要搜索“ ..xxx + ..”,则应使用xxx+%
如果要搜索“ .. + xxx ..”,则应使用%+xxx
如果要搜索“ .. ++ ..”,则应使用%++%
如果要搜索“ .. + .. + ..”,则应使用%+%+%
这也是我得到的,我不想要那样。 实际上,这是我不想选择的。 如果我的桌子上有jdsjpgsg + jdsjpgsg +,我想选择它而不是jdsjpgsg +,这很棘手...
因此您可以尝试like '%+%+%'
一样仅排除一个'+'
CREATE TABLE TestTable
(`text` varchar(90))
;
INSERT INTO TestTable
(`text`)
VALUES
('jdsjpgsg+jdsjpgsg+'),
('dvgff+'),
('ffef+eefds+ghghgh+')
;
select * from TestTable
where text like '%+%+%'
| text |
|--------------------|
| jdsjpgsg+jdsjpgsg+ |
| ffef+eefds+ghghgh+ |
%
是通配符。 您应该在data
后使用%
。 试试:
SELECT * FROM `table` WHERE `mycol` NOT LIKE 'data+%'
上面的查询将过滤出data+
之后具有任何字符的所有记录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.