Я хочу использовать mysql, чтобы проверить, существует ли значение в базе данных MySQL. Если значение существует, я ничего не хочу делать (я не хочу получать какие-либо данные). Если его нет, то я хочу установить некоторые условия where
.
Так что это то, что у меня есть, но это неправильно. потому что я все еще получаю данные, если не установлен where
условие
SELECT *,
CASE
WHEN ( table_name.record = 'inputrecord')
THEN
//Do nothing because it is found already
ELSE
// since inputrecord does not exist, we will start looking for 'id'
( WHERE table_name.id = '123')
END
FROM table_name
ПРИМЕЧАНИЕ: В приведенном выше примере я написал WHEN ( table_name.record = 'inputrecord')
и нетWHEN ( table_name.record != 'inputrecord')
. Это потому, что я хочу продолжить запрос только в том случае, если данных нет в таблице.
Возможно, лучше использовать IF
функция с EXISTS
функция, но я не уверен, как это сделать.
Любая помощь была бы замечательной. Прямо сейчас у меня ошибки
🤔 А знаете ли вы, что...
PHP можно использовать для работы с XML-документами.
Попробуй это...
SELECT *
CASE
WHEN table_name.record = 'inputrecord' THEN 'Unspecified'
WHEN table_name.id = '123' THEN 'table by id'
END
FROM table_name;
select *
from table_name
where case when table_name.record <> 'inputrecord'
then table_name.id = '123'
else 1=1
end
вы можете применить данное условие в своем коде
если условие ввода не совпадает, примените условие фильтрации.
при совпадении условий ввода (в противном случае) получите желаемый результат.
SQL работает не так.
SQL всегда возвращает набор строк. Он может быть пустым, иногда строки могут содержать NULL. Вы должны разработать свои условия для фильтрации коллекции.
Общий пример: скажем, у нас есть таблица автомобилей со столбцами (модель, цвет, год), и вы хотите найти что-нибудь об автомобилях в своей таблице:
(* Find all red cars *)
select * from cars where color = 'red'
(* Find all red cars from 1985 *)
select * from cars where color = 'red' and year = 1985
(* Find all colors which exist both in 1990 and 2000 *)
select distinct color from cars A where year=1990 and exists (select 1 from cars B where year=2000 and B.color = A.color)
Скажите, пожалуйста, чего именно вы пытаетесь достичь
Обновлено: это должно сделать это
(* select a record cars = 'Audi' only if cars = 'BMW' is not found in the whole table. otherwise. I do not want to select Audi even if it exists *)
select * from cars where model = 'Audi' and not exists (select 1 from cars where model = 'BMW')
здесь, ЕСЛИ в вашей таблице есть BMW, вы получите 0 строк, в противном случае список Audis