Лучший синтаксис запроса для вложенных таблиц?

У меня в таблице есть числовое поле category_id. Я хочу сделать что-то подобное.

$ids=implode(',',$id_array);
$sql = "SELECT * FROM myTbl WHERE IN(category_id,'$ids')";

Что должно вывести что-то вроде:

SELECT * FROM myTbl WHERE IN(category_id,'1,2,3,4,5,6');

Возможно ли это, и правильно ли я использую для этого синтаксис? Есть лучший способ это сделать?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
136
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Почти, но не совсем - вот один из способов, которым это могло бы сработать

$ids = "'".implode("','",$id_array)."'";
$sql = "SELECT * FROM myTbl WHERE category_id IN($ids)";

Что должно вывести что-то вроде:

SELECT * FROM myTbl WHERE category_id IN('1', '2', '3', '4', '5', '6');

Обратите внимание, что, поскольку поле является числовым, кавычки не нужны, но это полезная идиома кода для построения списков строк в кавычках. В вашем случае вы можете упростить

$ids=implode(',',$id_array);

(Я предполагаю, что массив не пуст, элементы массива очищены и т. д. Для ясности!)

category_id - числовое поле, в IN кавычки не требуются.

ninesided 11.01.2009 01:36

да, пропустил, что он объяснил это. Изменили.

Paul Dixon 11.01.2009 01:39

Да, синтаксис mysql таков:

SELECT * FROM myTbl WHERE category_id IN(1,2,3,4,5,6);

(поскольку значения являются целыми числами, они не нуждаются в кавычках. Если бы они были строками, каждую из них нужно было бы заключить в свои собственные кавычки - category_id IN ('a', 'b')

Ответ принят как подходящий

Откуда вы берете массив id? Если это из базы данных, вам следует подумать о том, чтобы сделать все это там:

SELECT * FROM myTbl WHERE c_id IN (SELECT c_id FROM yourTable WHERE ...);

Спасибо, все немного быстрее

Click Upvote 11.01.2009 02:01

Другие вопросы по теме