0

name: 、タイプ:textFULLTEXTインデックスという名前の列があります

nameそして私はこのクエリで列からIPアドレスを見つけようとします:

SELECT * FROM `data` WHERE  MATCH(ip) AGAINST ('127.0.0.1')

しかし、結果として0を取得しました。これは文字でのみ機能し、数字では機能しません。それを修正する方法は?

4

2 に答える 2

0

試す SELECT * FROM data WHERE ip LIKE '%127.0.0.1%'

または、IPアドレスが名前列にある場合は、 SELECT * FROM data WHERE name LIKE '%127.0.0.1%'

于 2013-01-11T15:40:50.030 に答える
0

フィールドには何がip含まれていますか? それは単一の IP アドレスですか、それとも複数の IP アドレスですか?

アドレスが 1 つだけの場合は、またはその他の専門的なクエリを使用する必要はありませMATCHLIKE。そのまま使用して=ください。すなわち:

SELECT * FROM data WHERE ip = '127.0.0.1'

レコードごとに複数の IP アドレスがある場合は、別の相互参照テーブルに分割することを検討することをお勧めします。これにより、このような検索クエリを実行する必要がある場合に管理がはるかに簡単になります。次に、答えは再び を使用するだけに戻り=、IP テーブルに結合します。

SELECT * FROM data d
INNER JOIN ipAddresses i on i.dataID=d.id
WHERE i.ip = '127.0.0.1'
于 2013-01-11T15:48:57.533 に答える