#mysql #select #conditional-statements #where
#mysql #выберите #условные операторы #где-предложение
Вопрос:
Все строки
SELECT * FROM table
Одна строка
SELECT * FROM table WHERE id = 3
Я хочу получить все строки, как я могу получить?
пример
SELECT * FROM table WHERE id = 0
Комментарии:
1. Почему вы не можете использовать первый пример?
2. Вы можете получить все строки, используя первый запрос
3. Чего именно вы хотите достичь. Пожалуйста, уточните.
4. в процедуре, которую я буду использовать, если параметр равен нулю, я хочу получить все строки.
5. просто проверьте в процедуре, если параметр не равен нулю, затем добавьте условие where, иначе не добавляйте его.
Ответ №1:
Если вы хотите получить все строки с параметром 0, используйте это:
SELECT * FROM table WHERE id = ? OR ? = 0;
Я надеюсь, что это то, что вы хотите.
Ответ №2:
Ваш вопрос немного неясен, но я предполагаю, что вы ищете способ выбрать все идентификаторы в случае, если данный параметр id равен нулю.
SELECT * FROM mytable WHERE id = @id OR @id = 0;
Или с нулем вместо нуля:
SELECT * FROM mytable WHERE id = @id OR @id IS NULL;
Комментарии:
1. IFNULL(id,3); может быть альтернативой?
2. No. id никогда не имеет значения null, так как это первичный ключ. (Или я неправильно понимаю дизайн вашей базы данных и ваш вопрос?) Я понимаю, что параметр @id может быть нулевым. Так
WHERE id = @id OR @id IS NULL
или с помощью IsNull:WHERE IFNULL(@id,id) = id
.
Ответ №3:
Возможно:
$query = 'SELECT * FROM table';
if (isset ($id)) {
$query .= " WHERE id = $id";
}