Php sql查询不选择值
我有一个简单的SQL插入查询:Php sql查询不选择值,php,sql,sql-server,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条记录我认为问题在于条件id=:ph
INSERT INTO db_name (COL1, COL2, COL3, ...)
VALUES ('value1', (SELECT name FROM another_table WHERE id = :php_value), value3 .....)
但有时COL2值为NULL,因为SELECT不选择任何名称存在是否可以防止空记录?或者我需要更改脚本并在插入外部之前保持选择?
这不是经常发生的,但是~1/3000条记录我认为问题在于条件id=:php\u值查询有时不返回数据。您可以通过以下方式避免向空名称的表中插入行:
INSERT INTO db_name (COL1, COL2, COL3, ...)
SELECT 'value1', name, 'value3',...
FROM another_table
WHERE id = :php_value
假设您使用的是PHP。 您可以使用默认值初始化name变量,然后单独运行select查询
$name = ""; // or whatever you want the default value to be
$query = "SELECT `name` FROM `another_table` WHERE `id` = '" + php_value + "'";
现在,您可以从查询中获取名称并将其存储在$name变量中。您可以首先检查数据库返回的值是否为null
然后,您可以创建下一个查询并运行它,嵌入$name变量。我想我没有弄好,但也许您可以尝试使用isnull或coalesches。您的COL3值是value3,这不是您选择的一部分。@ughai我的错,我是说col2 sorry,但另一个表100%具有该值。可能是服务器延迟还是延迟?@Klapsius我不知道你的环境,所以我不能告诉你任何关于它的事情。我只能根据您的问题来判断条件id=:php\u值有时不能正确工作。