Я хочу создать оператор select sql, который будет захватывать строки, если заданное значение находится в списке, разделенном запятыми, в одном из столбцов таблица базы данных.SQL Select - проверка значения в списке, разделенном запятыми - PHP
Пример Таблица ...
ID | курсы
| 5, 8, 15, 19
Я хочу сделать что-то вроде этого
$course_num = 5;
$sql = "SELECT * FROM courses WHERE $course_num IS IN courses";
1.) Я не думаю, что "находится в курсах" часть является законным. Как я могу это сделать?
2.) Для моего кода выше я хотел бы вернуть строку из-за «5» в courses
, а не из-за «15». Итак, если $course_num = 9
, строки не должны возвращаться.
Благодарим за помощь.
Это хороший пример того, почему хранить несколько значений в одном столбце трудно иметь дело. –
Вы правы, 'IS IN' не является правильным синтаксисом в MySQL, просто' IN() 'http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#function_in - Возможно, вы обнаружите, что 'FIND_IN_SET()' также может работать на вас http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set - Если вы не используете MSSQL, где 'IS IN' является допустимым синтаксисом. –
новая таблица: id, курсы, 1 | 5, 1 | 8, 1 | 15 и т. Д. –