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

时间:2018-06-08 08:24:50

标签: mysql string sql-like

在我的专栏中,我可以使用以下字符串:“data +”或“data + data + data + ..(undefined times).. +” 我只需要获取我有倍数数据的列而不仅仅是一列。

我试过

mycol NOT LIKE '%+'

但它没有用......

实际上我不知道数据是一个变化的字符串:'blabla'或'aString'或'what'

如果我在我的专栏中

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

我想只选择

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

不是'dvgff+'

2 个答案:

答案 0 :(得分:2)

如果你想搜索' .. 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+ |

SQL Fiddle Demo Link

答案 1 :(得分:0)

%是通配符。您应该在%之后使用data。试试:

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

上述查询将过滤掉data+之后包含任何字符的所有记录。