Я пишу запрос, как:Mysql выберите запрос для множественного значения
select *
from table
where cityid=2
но проблема в моей базе данных CityId хранится в виде (1.2.3) для нескольких городов Этот запрос не дает мне нужен желаемый результат.
Я пишу запрос, как:Mysql выберите запрос для множественного значения
select *
from table
where cityid=2
но проблема в моей базе данных CityId хранится в виде (1.2.3) для нескольких городов Этот запрос не дает мне нужен желаемый результат.
Попробуйте это: если вал ваш параметр
Select
*
from table
where cityId like 'val,%'
or cityId like '%,val,%'
or cityId like '%,val'
Это также будет соответствовать '(11,12,13)' с '1',' 2' и '3'. – h2ooooooo
как ?? это неслучайно, пожалуйста, пройдите через немного немного. –
@srikantamondal: мое удовольствие –
Не уверен, что, если я правильно понял ваше требование. Основываясь на моем понимании, попробуйте следующее:
select * from table where cityid like '%,2,%';
Вы можете использовать в MySQL FIND_IN_SET()
:
SELECT * FROM table WHERE FIND_IN_SET(2, cityid) > 0;
Однако, я бы на самом деле рекомендуется изменить схему вашей таблицы в не хранить несколько ассоциаций в одном клетка. Вы можете сделать это со второй таблицей, которая отображает отношения (думает create table table_cities (table_id int, city_id int);
), а затем использовать join
тянуть значение:
SELECT
t.*
FROM
table t
JOIN table_cities tc
ON t.id = tc.table_id
WHERE
tc.city_id = 2;
Является ли ваше значение буквально хранится в круглых скобках вокруг него, таких как '(1,2, 3) ', или он хранится без них, например' 1,2,3'? – newfurniturey