sql查询不要选择值

时间:2015-05-14 07:03:51

标签: php sql sql-server

我有简单的SQL插入查询:

INSERT INTO db_name (COL1, COL2, COL3, ...) 
VALUES ('value1', (SELECT name FROM another_table WHERE id = :php_value), value3 .....)

但有时COL2值为NULL,因为SELECT不选择任何内容(名称存在)是否可以保护空记录?或者我需要更改脚本并在插入之前保持选择(外部插入)? 这不是经常发生的,而是~1 / 3000记录

2 个答案:

答案 0 :(得分:2)

我认为问题在于条件id = :php_value,查询有时无法返回数据。您可以通过这种方式避免使用空name向表中插入行:

INSERT INTO db_name (COL1, COL2, COL3, ...) 
SELECT 'value1', name, 'value3',... 
FROM another_table 
WHERE id = :php_value

答案 1 :(得分:0)

假设您使用的是PHP。 您可以使用默认值初始化name变量,然后单独运行select查询。

$name = ""; // or whatever you want the default value to be
$query = "SELECT `name` FROM `another_table` WHERE `id` = '" + php_value + "'";

您现在可以从查询中获取名称并将其存储在$ name变量中(您可以先检查数据库返回的值是否为空)。

然后你可以创建下一个查询并运行它嵌入$ name变量。