Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 MySQL返回行(如果存在),否则返回其他行_Php_Mysql_Wordpress - Fatal编程技术网

Php MySQL返回行(如果存在),否则返回其他行

Php MySQL返回行(如果存在),否则返回其他行,php,mysql,wordpress,Php,Mysql,Wordpress,需要此查询的帮助 SELECT field_value, file FROM " . $wpdb->prefix . "cf7dbplugin_submits WHERE form_name = '" . $form_name . "' AND submit_time = '" . $submit_time . "' AND (field_name = 'csv_parts_file' OR field_name = 'csv_paste_file'); 基本上,我只想在这里返回一行,但

需要此查询的帮助

SELECT field_value, file
FROM " . $wpdb->prefix . "cf7dbplugin_submits
WHERE form_name = '" . $form_name . "' AND submit_time = '" . $submit_time . "' AND (field_name = 'csv_parts_file' OR field_name = 'csv_paste_file');
基本上,我只想在这里返回一行,但是我需要得到
field\u name='csv\u parts\u file'
(如果存在)的行,但是如果不存在,我需要得到
field\u name='csv\u paste\u file'
的行。我想我可能需要在这里做一个
案例
,但不确定如何做。没有太多的案例陈述经验

非常感谢您的帮助

数据库表结构如下:

这是一种有点奇怪的实现方式,但它应该是有效的:

SELECT field_value, file, IF(field_name = 'csv_parts_file', 0, 1) as condition
FROM " . $wpdb->prefix . "cf7dbplugin_submits
WHERE form_name = '" . $form_name . "' 
AND submit_time = '" . $submit_time . "' 
AND (field_name = 'csv_parts_file' OR field_name = 'csv_paste_file')
ORDER BY condition
LIMIT 1

根本不需要案例陈述;只需将
orderbyfield\u name LIMIT 1
添加到yoru-existingSQL@MarkBaker我使用的是
$wpdb->get_row
,所以我不认为它可以用。为什么你不认为它可以用呢?你以为一个复杂的案子会奏效!ORDER BY子句将把
csv\u parts\u文件
放在前面(如果两者都有),或者把
csv\u parts\u文件
放在前面(如果没有
csv\u parts\u文件
条目),LIMIT 1只会使用
$wpdb->get\u row
选择第一个条目不起作用,必须使用
$wpdb->get_results
来完成,这正是我试图避免的,因为get_results将它拆分为一个更深的数组…清除查询并输入一些原始值,即使它只是一个样本值也可以。以及你需要的结果。感谢您不确定OR是正确答案,因为它可能返回>1行。@Jeff当
限制1
时,它怎么会返回多于1行?您是对的,我错过了结尾的限制1语句。。。但是,在这种情况下,它将返回哪一行?满足OR中第一个条件的行或满足第二个条件的行?这就是您的
ORDER BY condition
,它将把字段名为“csv\u parts\u file”的行放在第一位