Я пишу хранимую процедуру в mysql, которая просто возвращает строку с предоставленным идентификатором или возвращает всю таблицу, если не указан ID.mysql where clause не работает
CREATE DEFINER=`root`@`localhost` PROCEDURE `SLICE_GET`(`slice_id` int)
BEGIN
SELECT *
FROM `thesis_db`.`SLICE_INFO`
WHERE (SLICE_ID = `slice_id` OR `slice_id` IS NULL);
END
Я использовал ту же самую идею в MS-SQL в течение многих лет пока это не похоже на работу для MySQL, так как независимо от того, который передается идентификатор, процедура возвращает всю таблицу. Что мне здесь не хватает?
Вы говорите 'WHERE SLICE_ID = SLICE_ID', который всегда будет возвращать true для каждой отдельной строки. – Siyual
Мне кажется, что вы используете столбец в своем фильтре вместо параметра: 'WHERE slice_id = slice_id или slice_id IS NULL' всегда будет истинным для каждой строки – Lamak
делает' SLICE_ID' и 'slice_id' из разных таблиц? Или 'slice_id' является значением? – Avidan