2015-05-24 3 views
2

У меня есть запрос, как это:Проверьте, что подзапрос вернулся

INSERT INTO cpus (
    `friendlyname`, `group 
) VALUES (
    'something', (SELECT `key` FROM `groups` WHERE `key` = 'something') 
); 

Однако я хочу, чтобы получить результат подзапроса. Первоначально я думал, что это будет что-то вроде

SELECT `key` FROM `groups` WHERE `key` = 'something' AS `result` 

но это не сработало. Что еще я должен попробовать?

+0

' SELECT 'key' FROM' groups' WHERE 'key' = 'something'' Это должно работать, но почему вам нужны результаты подзапроса? – RubahMalam

+0

Я хочу посмотреть, вернет ли он что-либо или нет. «Что-то» будет вводиться пользователем. – Frank

+0

Операция 'INSERT' не возвращает результат. Если вы хотите узнать, возвращают ли данные подзапроса, то вы должны проверить перед оператором 'INSERT'. – RubahMalam

ответ

2

Вы можете использовать MYSQL IF, чтобы проверить, если она возвращает что-нибудь или не

Попробуйте это:

INSERT INTO cpus 
(
`friendlyname`, 
`group 
) 
VALUES 
(
    'something', 
    IF((SELECT `key` FROM `groups` WHERE `key` = 'something') is null,'Do something on success','Else') 
); 

Перейдите по ссылке ниже для получения более подробной информации о потоке управления MYSQL: https://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html

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