【发布时间】:2016-02-10 04:28:34
【问题描述】:
我想在 SQLite 查询的每个 ORDER BY 子句之前插入一个“COLLATE NOCASE”。 这是我目前所拥有的:
$string = preg_replace('~(ORDER\s+BY\s+`?.+`?)\s+([ASC|DESC]?)~iU', '$1 COLLATE NOCASE $2', $string);
输出是:
SELECT `x`, `y` FROM `test` ORDER BY `x` COLLATE NOCASE ASC, `z` ASC 限制 0, 10
第一个实例被匹配和替换。第二个实例没有被替换(因为模式中的 ORDER BY 子句)。
【问题讨论】:
标签: php sql regex sqlite preg-replace