php検索


名前による検索を実現する方法
データベースに複数の人が格納されている場合、呼び出しが名前の頭文字で並ぶ必要がある場合、sql文の入力でデータを呼び出す必要があります.
ここではmysqlの関数convertを用いて,異なる文字セットで変換する役割を果たす.
where制限条件の後にファジイクエリが行われました
$sql="select * from `message` where `py`like 'l%' order by convert(py using gbk) ASC";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query)){

上のsql文は李という人、劉という人などを探すことができます.
ファジイクエリには4つのマッチングパターンがあります.
1・%:任意の文字または複数の文字を表します.任意のタイプと長さに一致する文字は、中国語で(%)で表すことができます.
2・ _: 式の長さを制限する単一の任意の文字を一致させます.
SELECT * FROM `message` WHERE name like '_ ';

この前には劉さん、李さん、あるいはほかの字しかありません.こんなこともできるし春_'このように探したり、「劉_」を探したりします.
3・[]:かっこ内の文字の1つ(正規表現のようなもの)を表します.一致するオブジェクトがいずれかであることを要求する文字、文字列、または範囲を指定します.
4,[^]:かっこに含まれていない1文字を表します.値は[]と同じですが、一致するオブジェクトは指定した文字以外の任意の文字である必要があります.
SELECT * FROM [user] WHERE u_name LIKE ' [^1-4]';

その結果、「老1」から「老4」を排除し、「老5」、「老6」、…