スペースが含まれる場合に最適な MySQL ソート方法は何ですか?
P粉793532469
2023-09-02 10:38:35
<p>つまり、ユーザーがフィールドを更新できるプロジェクトがあり、この機能は正常に動作します。 </p>
<p>ユーザーがフィールド <code>' '</code> にスペースを入力すると、問題が発生します。 </p>
<p>たとえば、フィールドが元々は <code>test1</code> でしたが、ユーザーがそれを <code>test 1</code> に変更したとします。変更が有効になり、期待どおりに印刷されます。 </p>
<p>ただし、ユーザーが <code>test1</code> から <code>test1</code> またはその他のものを入力し続けた場合、この変更はまったく発生しません。ユーザーが何を入力しても構いません。 </p>
<p>これはデータベースで使用している照合順序に関係があるような気がします。どの照合順序を使用しても問題は解決しません。また、率直に言って、照合順序についてはあまり知りません。 </p>
<p>フィールドを更新するコードは非常に簡単です: </p>
<pre class="brush:php;toolbar:false;">`$query = $pdo -> prepare("SELECT 1 FROM table WHERE field = ?");
$query ->bindValue(1, $new_name);
$query ->execute();
$num = $query -> rowCount();
if ($num == 0) {
$query = $pdo -> prepare("UPDATE table SET table = ? WHERE table = ?");
$query ->bindValue(1, $new_name);
$query ->bindValue(2, $old_name);
$query ->execute();
}`</pre>
<p>私の問題について、問題の原因または修正方法について何か意見を持っている人はいますか? </p>
<p>よろしくお願いします。 </p>
列
col
に格納されている正確な内容を確認するには、SELECT HEX(col) ...
を実行します。スペースは 20 として表示されます。<form>
に入力された先頭と末尾のスペースを削除するには、PHP のtrim()
関数を使用します。カラムのデータ型に応じて、MySQL は末尾のスペースを無視します。
CHAR
、VARCHAR
、TEXT
、BLOB
、または別の型を使用していますか?それ以外の場合、先頭および内部の空白は関係者全員によって保持されます。
リーリー