2016-12-19 4 views
1

ドル。sqlite/php - '入力順'順 - 暗黙のクエリ

$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

私の目標は、入力(順序)と同じ(出力)順序を得ることです。

私は使っても簡単な注文はありますか?それとももっと複雑になるのですか?

答えて

1

SQLでは、テーブルは常に順序付けられていません。クエリで特定の順序が使用されるという保証はありません。

特定の順序で行を取得する場合は、クエリでORDER BYを使用して行を明示的に並べ替える必要があります。

あなたはソートのために直接使用することができ、いくつかのテーブルのデータが存在しない場合は、ソートのために使用可能ないくつかの値にテーブル値をマッピングするためにCASE expressionを使用する必要があります。

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