MySQL использует как, чтобы соответствовать конкретной строке - PullRequest
0 голосов
/ 08 июня 2018

В моем столбце я могу иметь строку типа: «data +» или «data + data + data + .. (undefined times) .. +» Мне просто нужно получить столбец, в котором у меня есть данные, кратные ине только один.

Я пытался с

mycol NOT LIKE '%+'

Но это не сработало ...

На самом деле я не знаю, данные этострока, которая изменяется: «blabla» или «aString» или «что угодно»

Если у меня в столбцах было

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

Я хочу выбрать только

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

НЕ 'dvgff+'!

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

если вы хотите искать '..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

0 голосов
/ 08 июня 2018

% - это символ подстановки.Вы должны использовать % после data.Попробуйте:

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

Приведенный выше запрос отфильтрует все записи, в которых есть символы после data+.

...