2014-05-14 4 views
-3

У меня есть запрос, который использует MySQL CONCAT и заменить в пункте где:Concat в котором положение в MySQL

select * from table1 where name in 
(concat("'",(REPLACE('name1,name2,name3', ',', "','")),"'")); 

Этот запрос не работает. Не могли бы вы помочь мне в выявлении проблемы?

+2

Что именно вы пытаетесь сделать, и что не работает? Вы пытаетесь построить набор динамически и сопоставить «имя» с ним? – vhu

+0

Сообщите нам об ошибке. –

+0

Из строки 'name1, name2, name3' я хочу, чтобы отдельные строки назывались 'name1', 'name2', 'name3', чтобы я мог использовать их в вышеуказанном запросе. – harishsingh

ответ

0

Скорее всего, вы должны заменить одиночные кавычки вокруг имя1 ..:

select * 
from table1 
where `name` in (concat("'",(REPLACE("name1,name2,name3", ",", "','")),"'")); 
+1

это тоже не работает. – Simulant

+1

yep, не работает – harishsingh

+0

Я тестировал это в MySQL. Единственное различие заключалось в имени таблицы и col. Попробуйте поставить «' (акцент) до и после «Имя». Это может быть зарезервированное слово. –

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