2013-09-25 2 views
-1

При использовании if exists с select, как я могу получить его для возврата id или того, что когда-либо было полем или полями, которые я хочу отобразить, или «Не существует»?mySql возвращает выбранные поля при выборе, если существует

SELECT IF(EXISTS(SELECT id, dateIn FROM table WHERE id = 10), my selected fields here, 'Does not exist')

Или есть другой способ сделать это?

ответ

0
IF(EXISTS(SELECT * FROM table WHERE id = 10) 
    SELECT id, otherFields FROM table WHERE id=10 
ELSE 
    SELECT 'Does not exist' FROM table 
+0

Разве нельзя использовать значения из первого выбора, если они существует, как и в моем вопросе, вместо того, чтобы делать это дважды? – Norman

+0

AFAIK, no. Но, честно говоря, я не думаю, что вы должны использовать БД, чтобы сказать вам, что ваши данные «Не существует». Поскольку я предполагаю, что вы будете использовать данные в какой-либо программе, почему бы просто не выбрать ваши данные и не оговориться на программном уровне, если результат содержит 0 строк, вывод некоторых сообщений «Не существует»? –

+0

Это будет использоваться в разбивке на страницы. Вот почему. – Norman

0

Если вы хотите использовать ту же переменную, которую вы можете использовать его, как это, givev, что его использовали в хранимой процедуре

BEGIN 

SELECT id, otherFields INTO @id,@otherFields FROM table WHERE Id = 10; 

IF (@id IS NOT NULL) then 
SELECT @id,@otherFields; 
ELSE 
SELECT 'Not exist'; 
END IF; 

END 
+0

Я использую это в php-скрипте. Не используйте хранимую процедуру. – Norman

+0

Итак, почему вы не можете просто определить переменную, проверить ее значения и затем выполнить IF? –

+0

Пожалуйста, напишите, если вы используете php или просто кодируете sql, тогда я бы не потратил впустую 10 минут моего утра :) хе-хе удачи. –

Смежные вопросы