suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Was ist die beste MySQL-Sortiermethode für Fälle, die Leerzeichen enthalten?

<p>Ich habe also ein Projekt, bei dem der Benutzer ein Feld aktualisieren kann und diese Funktionalität einwandfrei funktioniert. </p> <p>Das Problem tritt auf, wenn der Benutzer ein Leerzeichen in das Feld </code> eingibt. </p> <p>Angenommen, das Feld lautete ursprünglich <code>test1</code> und der Benutzer ändert es in <code>test 1</code>. Die Änderung wird wirksam und auch wie erwartet gedruckt. </p> <p>Wenn der Benutzer jedoch weiterhin etwas von <code>test1</code> bis <code> test1</code> eingibt, erfolgt diese Änderung überhaupt nicht. Egal, was der Benutzer eingibt. </p> <p>Ich habe das Gefühl, dass das mit der Sortierung zu tun hat, die ich in der Datenbank verwende. Egal welche Sortierung ich verwende, das Problem besteht weiterhin, und ehrlich gesagt weiß ich nicht viel über Sortierungen. </p> <p>Der Code zum Aktualisieren des Feldes ist sehr einfach: </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 -> 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>Hat jemand etwas zu meinem Problem zu sagen, entweder zur Ursache des Problems oder zur Lösung des Problems? </p> <p>Vielen Dank im Voraus. </p>
P粉793532469P粉793532469452 Tage vor575

Antworte allen(1)Ich werde antworten

  • P粉154798196

    P粉1547981962023-09-03 09:22:38

    • 要查看存储在列col中的确切内容,请执行SELECT HEX(col) ...。空格将显示为20。

    • 要去除在<form>中输入的前导和尾随空格,请使用PHP的trim()函数。

    • 根据列的数据类型,MySQL将忽略尾随空格。您使用的是CHARVARCHARTEXTBLOB还是其他类型?

    • 否则,所有相关方都将保留前导和内部空格。

      mysql> SELECT HEX("test 1");
        +---------------+
        | HEX("test 1") |
        +---------------+
        | 746573742031  |
        +---------------+
          t e s t   1

    Antwort
    0
  • StornierenAntwort