空白のバリエーションを考慮したユーザー名の検索
ユーザー名を検索するときは、フィールド内の空白を無視することが望ましいことがよくあります。たとえば、ユーザー「JohnBobJones」、「John Bob Jones」、「JohnBobJones」が含まれるデータベースでは、「John Bob Jones」を検索すると 3 つのエントリすべてが取得されると予想するのが自然です。
空白正規化を使用した SQL クエリ
この空白に依存しない検索を実現するには、次の SQL クエリを実行できます。 used:
SELECT * FROM mytable WHERE REPLACE(username, ' ', '') = REPLACE("John Bob Jones", ' ', '')
このクエリは REPLACE() 関数を使用して、ユーザー名フィールドと検索文字列の両方からすべての空白文字を削除します。正規化された値を比較することで、空白の有無が検索結果に影響を与えないことが保証されます。
PHP または Python での実装
SQL クエリは次のとおりです。適切なデータベース コネクタを使用して、PHP または Python から実行されます。 PHP の例:
$db = new mysqli('localhost', 'user', 'password', 'database'); $stmt = $db->prepare("SELECT * FROM mytable WHERE REPLACE(username, ' ', '') = REPLACE('John Bob Jones', ' ', '')"); $stmt->execute(); $result = $stmt->get_result();
Python の例:
import mysql.connector db = mysql.connector.connect( host='localhost', user='user', password='password', database='database' ) cursor = db.cursor() cursor.execute("SELECT * FROM mytable WHERE REPLACE(username, ' ', '') = REPLACE('John Bob Jones', ' ', '')") result = cursor.fetchall()
これらのコード スニペットはデータベース接続を確立し、正規化された値で SQL クエリを実行し、一致するエントリを取得します。 .
以上がSQL で空白のバリエーションを無視してユーザー名を検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。