[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mysql IN и строка
Kusss
Вопрос многим покажется простым, но тем не менее.
$array = array('строка1', 'строка2',  'строка3', 'строка4', 'строка5');
$sql = "
SELECT
*
FROM
`table`
WHERE
`value` IN ("
.implode(',', $array).")
"
;
echo $sql;
Вот так ничего не получиться. Потому что результат будет без кавычек.
SELECT * FROM `table` WHERE `value` IN (строка1,строка2,строка3,строка4,строка5)


Можно вот так. Но это видать не лучшее решение.
$array[] = "'".$value."'";


Как лучше сделать ?
Kusss
$sql = "
SELECT
*
FROM

$table
WHERE
`value` IN ('"
.implode('\',\'', $array)."')
"
;

во какой вариант назрел :)
Guest
FIND_IN_SET
Kusss
Guest
И как мне это использовать ?
Задача. Обновить данные у кучки электронных адресов.
FatCat
Цитата (Kusss @ 25.05.2016 - 15:21)
во какой вариант назрел :)

Хороший вариант.
Или сразу при создании массива:
$array = array("'строка1'", "'строка2'",  "'строка3'", "'строка4'", "'строка5'");


_____________
Бесплатному сыру в дырки не заглядывают...
killer8080
Цитата (Kusss @ 25.05.2016 - 16:21)
$sql = "
SELECT 
*
FROM
$table
WHERE
`value` IN ('".implode('\',\'', $array)."')
";

во какой вариант назрел smile.gif

эскейпить только не забываем. rolleyes.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.