首页 > 解决方案 > 如何最小化sql查询中的代码重复?

问题描述

我正在研究 SQL 查询代码,我想在其中避免 sql 查询重复。

下面是sql查询代码:

    switch ($y) {
        case 'l.text':
            $query->order('numeric_text ' . (strtolower($x) == 'DESC' ? 'DESC' : 'ASC') .
                ', ' . $y . ' ' . (strtolower($x) == 'DESC' ? 'DESC' : 'ASC'));
            break;
    }

在上面的 SQL Query 代码strtolower($x) == 'DESC' ? 'DESC' : 'ASC'中,有两个地方使用。我正在考虑在那里放置一个变量。

这是我尝试过的:

    $sortOrder = (strtolower($x) == 'DESC' ? 'DESC' : 'ASC');

    switch ($y) {
        case 'l.text':
            $query->order('numeric_text ' . $sortOrder . ', ' . $y . ' ' . $sortOrder);
            break;
    }



问题陈述:

我想知道是否有其他更好的方法,我们可以避免 sql 查询重复。

标签: phpsql

解决方案


为什么不用三元运算符简写的简写

<?php
$sortOrder = $sortOrder ?: 'ASC';

switch ($y) {
    case 'l.text':
        $query->order("numeric_text {$sortOrder},{$y} {$sortOrder}");
        break;
}

推荐阅读