【发布时间】:2016-07-26 23:42:59
【问题描述】:
需要有关此查询的帮助...
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');
基本上,我想在这里只返回 1 行,但我需要获取 field_name = 'csv_parts_file' 所在的行(如果存在),但如果该行不存在,则我需要获取 field_name = 'csv_paste_file' 所在的行。我想我可能需要在这里做一个CASE,但不知道怎么做。对 CASE 语句没有太多经验。
这里非常感谢任何帮助。
【问题讨论】:
-
根本不需要case语句;只需将
ORDER BY field_name LIMIT 1添加到您现有的 SQL 中 -
@MarkBaker 我正在使用
$wpdb->get_row,所以不要认为它会起作用。 -
你为什么不认为它会起作用?你相信一个复杂的 CASE 会起作用!如果两者都有,则 ORDER BY 子句将
csv_parts_file放在首位,如果没有csv_parts_file条目,则将csv_parts_file放在首位,并且 LIMIT 1 只会选择第一个条目 -
使用
$wpdb->get_row不起作用,必须使用$wpdb->get_results来实现,这是我试图避免的,因为 get_results 将其拆分为更深的数组... -
清除您的查询并放入一些原始值,即使它只是一个样本值也可以。和你需要的结果。谢谢