5

ユーザーが $Title、$Text、$Number の 3 つの変数を検索するための検索エンジンを構築する?

$query = trim ($query);

$raw_results = mysql_query("SELECT * FROM posts
        WHERE (`Number` LIKE '%".$query."%') OR (`Title` LIKE '%".$query."%') OR (`Text` LIKE '%".$query."%') ") or die(mysql_error());
4

4 に答える 4

5

大文字と小文字を区別しない照合を使用する

SELECT * FROM posts
WHERE (`Number` LIKE '%".$query."%') 
OR (`Title` LIKE '%".$query."%') 
OR (`Text` LIKE '%".$query."%')
COLLATE utf8_ci  --'ci' stands for case insensitive: choose the colaltion that fits your encoding

サポートされている照合のリストはこちら: https://dev.mysql.com/doc/refman/5.5/en/charset-charsets.html

于 2013-03-03T18:49:37.603 に答える
3

mysql LOWER()関数を使用できます。

$query=strtolower($query); //Query to lower case
$raw_results = mysql_query("SELECT * FROM posts
    WHERE (LOWER(`Number`) LIKE '%".$query."%') OR (LOWER(`Title`) LIKE '%".$query."%') OR (LOWER(`Text`) LIKE '%".$query."%') ") or die(mysql_error());

ただし、php の mysql 関数は非推奨です。mysql の代わりに mysqli を使用する必要があります。

于 2013-03-03T18:50:26.590 に答える
1

charデフォルトでは、MySQL は、varchar、およびtext(非バイナリ文字列) の大文字と小文字を区別しません。

于 2013-03-03T18:49:24.467 に答える
-1

私が会社のために自分のデータベースで行ったことの 1 つは、PHP の strtoupper() 関数を使用してすべてを大文字にすることです (特に個人的なセキュリティ上の理由から)。大文字と小文字を区別しないフィールドで utf8_ci 照合を使用する場合にも役立ちます。

于 2013-03-03T18:58:08.533 に答える