"SELECT DISTINCT `Name` FROM ( SELECT * FROM `Aliases` WHERE ( `IP` GLOB 'ENTERED_NAME' ) ORDER BY `Datetime` DESC )"
基本的に、「ENTERED_NAME」と同じ IP アドレスにリンクするすべての名前を取得しようとしています。
「GLOB」に相当する MySQL はありますか?
GLOB
ワイルドカードを使用します。たとえばGLOB 'Foo*'
、 で始まるものに一致させFoo
ます。Mysql はこれをサポートしていませんが、次のように文字列を変換して動作させることができますLIKE
。
WHERE IP LIKE BINARY REPLACE('ENTERED_NAME', '*', '%') -- replace * with %
SELECT DISTINCT `Name` FROM (
SELECT * FROM `Aliases` WHERE ( `IP` LIKE '%[entered_name]%' ) ORDER BY `Datetime` DESC
)
...また...
SELECT DISTINCT `Name` FROM (
SELECT * FROM `Aliases` WHERE ( `IP` = '[entered_name]' ) ORDER BY `Datetime` DESC
)
...ここで [entered_name] はそれに応じて変化します。