1

次のクエリがあります。

SELECT url, url_hash from pages WHERE url_hash IN (SHA1('URL1'), SHA1('URL2'), SHA1('URL3'))
ORDER BY FIND_IN_SET(url_hash, "SHA1('URL1'), SHA1('URL2'), SHA1('URL3')")

結果セットの順序を IN 句のパラメーターの順序と同じに保ちます。

私はこのSOの質問を見つけました。

問題は、mysql が一連の SHA1 関数を解釈する方法を認識していないことです。それらを文字列として渡すと正しく評価されず、式 (引用符なし) を渡すと次のエラーが発生します。

OperationalError: (1582, "Incorrect parameter count in the call to native function 'FIND_IN_SET'")
4

1 に答える 1