Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php sql查询不选择值_Php_Sql_Sql Server - Fatal编程技术网

Php 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

我有一个简单的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=: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值有时不能正确工作。