2015-11-24 3 views
1

Я создал базу данных для рассылки новостей, и я сохраняю кампании. Также я добавляю код кампании в таблицу клиентов. например, у меня есть campagin с кодом «коллаген» ana code «solgar-51%», и я сохраняю его в столбце электронной почты «collagen, solgar-51%». У некоторых клиентов есть оба. Я хочу emailcampaign столбец, как конец «solgar-51%».mysql like string, который содержит%

Эта работа

SELECT * 
FROM `customer` 
WHERE `emailcampaign` LIKE '%solgar -51%%' 

но это НЕ

SELECT * 
FROM `customer` 
WHERE `emailcampaign` LIKE 'solgar -51%%' 

ни этот

SELECT * 
FROM `customer` 
WHERE `emailcampaign` LIKE 'solgar -51%%' 

Может кто-нибудь мне помочь ?? Извините за мой английский

+0

'.. как '% Solgar -51 \%' побег«\ '' – amdixon

+1

, как «% solgar -51 \%», начинается с начала строки, и, как «%/solgar -51%», заканчивается строка – Sak

ответ

1

Try \%:

SELECT * 
FROM `customer` 
WHERE `emailcampaign` LIKE '%solgar -51\%' 
+0

, но если «% solgar -51%» дважды в электронной почте (вторая кампания с то же имя от пользователя) это неверно – Sak

+0

Используйте что-то вроде 'str_replace ('%', '\%', $ user_value);' если вы хотите удалить проценты из строки – mnv

+0

Но лучше использовать PDO и параметры – mnv

0

побег '\'

SELECT * 
FROM `customer` 
WHERE `emailcampaign` LIKE '%solgar -51\%' escape '\'; 

Более detailed