2010-01-10 2 views
1

Возможный дубликат:How to apply wildcard in instr() in MySQL?Как использовать чувствительность к регистру в instr() в MySQL?

Возможный дубликат связан показывает запрос, который так же, как мой текущий один вид. Тем не менее, я не могу найти способ сделать это дело чувствительным совпадением. : \

SELECT COUNT(*) FROM users WHERE INSTR(flags, 'T') > 0; 

У меня есть счет 46, который, очевидно, ошибочен. Он подсчитывает каждый экземпляр «T» в флагах, будь то верхний или нижний регистр.

Работает согласно документации MySQL. Я нашел что-то в документах MySQL, в которых говорится, чтобы поставить символ «@» на переменной, чтобы сделать его совпадающим с регистром. Тем не менее, я попробовал это на @ 'T', чтобы сформировать следующий запрос:

SELECT COUNT(*) FROM users WHERE INSTR(flags, @'T') > 0; 

Я получаю отсчет нуля.

Может ли кто-нибудь пролить свет на это для меня? :)

EDIT:

забыл упомянуть, извините. Я также пробовал LIKE '%T%' как предложение where, которое все еще не удалось и возвращает то же, что и (INSTR(flags, 'T') > 0);

+0

Возможно, вы могли бы разместить свой образец значения 'flags', чтобы мы могли протестировать его. – cmptrgeekken

+0

'flags' будет чем-то вроде« TkKp », где« T »- это то, что я сопоставляю. Строка примера, где «Т» имеет нижний регистр: «AKkRBbagSsPpCtmxeGhUX» – Zack

+0

Я пытаюсь подсчитать, сколько записей в моей таблице содержит определенное поле, содержащее «Т». – Zack

ответ

2

Испытано,

SELECT binary 'AKkRBbagSsPpCtmxeGhUX' LIKE '%T%'; 

производит '0', как и ожидалось. Согласно документации String Comparison, LIKE выполняет двоичное (таким образом, учитывающее регистр) сравнение, если любой из его операндов является двоичным.

2

Я считаю, что это будет работать

SELECT COUNT(*) FROM users WHERE INSTR(binary flags, 'T') > 0; 
+0

Хм. Не работает, поскольку он возвратил счет 5, который все еще некорректен :( – Zack

+1

Вы упомянули try 'LIKE', вы пробовали' бинарные флаги LIKE '% T%' 'или, может быть,' binary flags LIKE binary '% T%' ' –

+0

+1 отлично работает здесь на v5.5 – virtualeyes

Смежные вопросы