変数を使用した単純な選択ステートメントを試しています。 concat_ws('%', @S, '%'); のようにステートメントを変更すると、正常に動作します。文字列に。 select ステートメントでは SET 変数が選択されていないようです。助けてくれてありがとう。 Mysql80ワークベンチを使用しています。
CONCAT を使用して、変数値の両側にワイルドカード文字が必ず含まれるようにします。それ以外の場合、最初に CONCAT_WS を区切り文字引数として使用すると、文字列の末尾に 2 つのワイルドカードが返されます。 は 1 つのワイルドカード と同等であり、望ましくない結果が生成されます。
CONCAT
CONCAT_WS
ただし、CONCAT はご想像どおりワイルドカードを返します:
CONCAT
を使用して、変数値の両側にワイルドカード文字が必ず含まれるようにします。それ以外の場合、最初にCONCAT_WS
を区切り文字引数として使用すると、文字列の末尾に 2 つのワイルドカードが返されます。 は 1 つのワイルドカード と同等であり、望ましくない結果が生成されます。ただし、
リーリーCONCAT
はご想像どおりワイルドカードを返します: