2

データベースに名前のリストがあり、URLで渡す名前のIDを見つける必要があります。

私の問題は、保存されたレコードがデータベースにある間、URLで渡す名前にスペースがないことです。データベースを検索すると、レコードが見つかりません。

たとえば、データベースレコードは「MyName」ですが、URLを渡して検索するのは「myname」です。

if(isset($_GET["name"])) $name = $_GET["name"];

SELECT id
FROM table
WHERE name Like '%$name%'

助けてくれてありがとう。

4

3 に答える 3

6
// id don't know the exact syntax, but this is what you are searching for I guess:

// replace spaces with nothin temporarily, then check equal (=) not like (%%) if name is exactly the same (except the spaces)

SELECT id, REPLACE(name, ' ', '') AS tmp FROM table WHERE tmp='%$name%'
于 2012-05-18T14:42:22.117 に答える
3

明らかに正しい保存方法や検索方法ではありませんが、必要に応じて、次のようにスペースを空白に置き換えてみてください。

SELECT id
FROM table
WHERE REPLACE(`name`,' ','') LIKE '%$name%'
于 2012-05-18T14:22:42.407 に答える
2

ベスト プラクティスは、name_nospaces などと呼ばれる別の列を保存し、My Name レコードを挿入するときに計算値として myname を挿入することだと思います。myname を列として含むビューを作成し、それに対してクエリを実行することもできますが、元のテーブルに別の列を作成する利点は、すばやく検索できるようにインデックスを作成できることです。

于 2012-05-18T14:18:44.317 に答える