mysql使用like来匹配特定的字符串

c0vxltue  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(526)

在我的列中,我可以有一个字符串,比如:“data+”或“data+data+data+…(未定义的时间)…+”我只需要得到一个列,其中我有多个数据,而不是只有一个。
我试过了

mycol NOT LIKE '%+'

但没用。。。
实际上我不知道数据,它是一个不同的字符串:“blabla”或“astring”或“whatever”
如果我的专栏里有

'jdsjpgsg+jdsjpgsg+', 'dvgff+', 'ffef+eefds+ghghgh+'

我只想选择

'jdsjpgsg+jdsjpgsg+',
'ffef+eefds+ghghgh+',

不是 'dvgff+' !

6kkfgxo0

6kkfgxo01#

如果您想搜索“…+…”,那么您应该使用 +% 如果要搜索“…+…”,则应使用 %+ 如果要搜索“..++..”,则应该使用 %++% 如果你想搜索“..+..+..”,那么你应该使用 %+%+% 这也是我得到的,我不想那样。这其实是我不想选择的。如果我的表中有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+ |

sql fiddle演示链接

bkhjykvo

bkhjykvo2#

这个 % 是通配符。你应该使用 % 之后 data . 试试看:

SELECT * FROM `table` WHERE `mycol` NOT LIKE 'data+%'

上面的查询将过滤掉所有后面有任何字符的记录 data+ .

相关问题