首页  >  问答  >  正文

最佳的MySQL排序方法,适用于包含空格的情况是什么?

<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>
P粉793532469P粉793532469414 天前546

全部回复(1)我来回复

  • 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

    回复
    0
  • 取消回复