有人可以帮助我吗?
我有一个简单查询和子查询的程序。在子查询中我想修改where和limit。如何在查询中找到最后一个“)”并在其前面加上“限制10”。
可以在程序中获得的子查询示例。
我有“$ Qstring = array_pop(explode(')',$ Qstring));”
SELECT
QE.Maand,
QE.Week,
QE.`Opzegging direct`,
QE.`Opzegging einddatum`,
QE.Totaal,
QE.`Nieuwe Leverancier`
FROM
( select
MONTHNAME(calldate) as Maand,
WEEKOFYEAR(calldate) as Week,
O1.description as "Omschrijving",
COUNT(CASE WHEN O1.description ="Opzegging per direct" THEN 1 END) AS "Opzegging direct",
COUNT(CASE WHEN O1.description ="Opzegging per einddatum" THEN 1 END) AS "Opzegging einddatum",
COUNT(CASE WHEN O1.description ="Opzegging per einddatum" OR O1.description ="Opzegging per direct" THEN 1 END) as Totaal,
COUNT(CASE WHEN O1.description ="Behouden" THEN 1 END) AS "Behouden",
O2.description as "Nieuwe Leverancier"
FROM best.prj_004_table LEFT OUTER JOIN best.prj_004_options O1 ON best.prj_004_table.rs_retentieresult = O1.value
LEFT OUTER JOIN best.prj_004_options O2 ON best.prj_004_table.rs_newsuplier = O2.value
O2.description is not NULL AND year(calldate) = year(CURDATE()) AND MONTH(calldate) = MONTH(CURDATE()) GROUP BY O2.description ORDER BY WEEK(calldate) ) QE
答案 0 :(得分:0)
$sql = 'SELECT * FROM (SELECT col1, col2 FROM table JOIN table2 ON col3=col4)';
$limit = ' LIMIT 5';
$position = strripos($sql ')');
$end = substr($sql, $position);
$replace = substr_replace($sql, $limit, $position);
$replace .= $end;
有目的地有点冗长,但它确实起作用。