我有一个包含大量记录的数据库,更具体地说,我有一个查询,其中包含多个子查询,用于获取记录并显示在前端。
如果字段包含NULL
,我想显示一些默认值。
那么请你帮我找出以下哪种方法可以提供更好的性能。我现在正在使用MYSQL方法,但这需要很多时间 非常感谢任何建议。
MYSQL方法
SELECT A.columnA,
IFNULL (( SELECT B.columnB FROM tableB B), 'default-value') AS columnB,
IFNULL (( SELECT C.columnC FROM tableC C), 'default-value') AS columnC,
IFNULL (( SELECT D.columnD FROM tableD D), 'default-value') AS columnD
FROM tableA A
WHERE 1=1
LIMIT 20
ORDER BY A.columnA ASC
PHP方法
foreach($recordsFromDB as $record) {
if(is_null($record->columnB)) {
echo 'default-value';
} else {
echo $record->columnA;
}
}
答案 0 :(得分:0)
在编程中没有完美的方法,因此找到了很多解决方案!所以让我们从这一点开始, 在我看来,检查空值应该使用PHP,然后你可以传递你得到的句柄进行进一步的MySQL处理! 您显然很难使用MySQL处理所有这些查询。 我的建议,尝试检查空值并在php中替换它们,如果你不得不处理在数据库命中MySQL中检索/获取或插入值