简体   繁体   English

MySQL查询问题,当列不为空时插入行

[英]Mysql query issue, case when column is not null insert row

This is my query : 这是我的查询:

SELECT vehicle,
CASE 
WHEN vehicle IS NOT NULL
THEN (INSERT INTO tbl_vehicle_on_user (vehicle, userid) values
(SELECT `vehicle` FROM `tbl_missions` WHERE `id` = 4 ), (SELECT `id` FROM `tbl_users`     WHERE `id` = 12))
FROM tbl_missions WHERE id = 4;

I need to insert a row to tbl_vehicle_on_user when vehicle is not null on id 4. When i execute this query i receive this error from mysql workbench, 当车辆在ID 4上不为null时,我需要在tbl_vehicle_on_user中插入一行。执行此查询时,我从mysql工作台收到此错误,

01:24:49 SELECT vehicle, CASE WHEN vehicle IS NOT NULL THEN (INSERT INTO tbl_vehicle_on_user (vehicle, userid) values (SELECT vehicle FROM tbl_missions WHERE id = 4 ), (SELECT id FROM tbl_users WHERE id = 12)) FROM tbl_missions WHERE id = 4 Error Code: 1064. You have an error in your SQL syntax; 01:24:49选择车辆,在车辆不为空的情况下然后(插入tbl_vehicle_on_user(车辆,用户ID)值(SELECT vehicletbl_missions WHERE id = 4),(SELECT idtbl_users WHERE id = 12))从tbl_missions WHERE id = 4错误代码:1064。SQL语法错误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INTO tbl_vehicle_on_user (vehicle, userid) values (SELECT vehicle FROM `tbl_mi' at line 4 0.000 sec 检查与您的MySQL服务器版本对应的手册以获取正确语法的语法,以在'INTO tbl_vehicle_on_user(vehicle,userid)值附近使用(第4行0.000秒,从'tbl_mi'中选择SELECT vehicle

And i get a red line under 'INTO' when i hover over it, it says 'Syntax error, unexpected INTO, expecting ('. 当我将鼠标悬停在“ INTO”下时,它会出现一条红线,上面写着“语法错误,意外的INTO,期望(”。

I don't know what it means i tried to search the web but couldn't find anything if you know how to fix this i will appreciate it if you answer my question :) 我不知道我试图在网上搜索是什么意思,但是如果您知道如何解决它就什么也找不到,如果您回答我的问题,我将不胜感激:)

THANKS!! 谢谢!!

If you already know the userid should be 12, then just use 12 instead of SELECT id FROM tbl_users WHERE id = 12 . 如果您已经知道userid应该为12,则只需使用12代替SELECT id FROM tbl_users WHERE id = 12 Here is a valid insert-select statement. 这是有效的插入选择语句。

INSERT INTO tbl_vehicle_on_user (vehicle, userid)
SELECT `vehicle`, 12 userid 
FROM `tbl_missions` 
WHERE `id` = 4 and vehicle is not null;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM