sqlite/php - 按 'input order' 排序 - 内爆查询

sqlite/php - order by 'input order' - with imploded query

美元。

$qtwo = str_split_unicode($q); 
$arrlength = count($qtwo);

然后我得到:

$where = array();
foreach ( $qtwo as $word ) {
$where[] = "CHS LIKE '%" . $word . "%'";
}
$where = implode(' OR ', $where);    

if ($q[0] == "#")  {
} else {$results4 = $db->query("SELECT * FROM FOUR WHERE $where");
while ($row4 = $results4->fetchArray()) {

然后是一堆回声等 - 但结果按字母顺序返回 - 先到先得,例如:

隔山买老牛

回归

——————————————————————————

《现代汉语方言音库 • 成都话音档》

词语: 隔

发音: ge2

国际音标: ke²¹

——————————————————————————

《现代汉语方言音库 • 成都话音档》

词语: 买

发音: mai3

国际音标: mai⁵³

——————————————————————————

《现代汉语方言音库 • 成都话音档》

词语: 老

发音: lao3

国际音标: nau⁵³

——————————————————————————

《现代汉语方言音库 • 成都话音档》

词语: 牛

发音: niu2

国际音标: ȵiəu²¹

——————————————————————————

《现代汉语方言音库 • 成都话音档》

词语: 山

发音: san1

国际音标: san⁵⁵

对于任何人来说,如果要找到中文类的外国语,就像搜索:GSMLN 并按字母顺序获得结果:GMLNS.

我的目标是让(输出)顺序与输入(顺序)相同。

有没有我可以使用的简单订单?还是会变得更复杂?

在SQL中,table总是无序的;不能保证查询使用任何特定顺序。

如果要按特定顺序获取行,则必须在查询中使用 ORDER BY 对它们进行显式排序。

如果没有可以直接用于排序的table数据,则必须使用CASE expression将table值映射到一些可用于排序的值:

SELECT ...
ORDER BY CASE WordColumn
         WHEN '隔' THEN 1
         WHEN '山' THEN 2
         WHEN '买' THEN 3
         WHEN '老' THEN 4
         WHEN '牛' THEN 5
         END;