ホームページ > php教程 > php手册 > PHP 開発における 2 つの実践的な SQL

PHP 開発における 2 つの実践的な SQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-21 09:05:28
オリジナル
961 人が閲覧しました


過去 2 日間のプロジェクト開発では、いくつかのより実用的な関数を実装する必要があり、2 つの SQL が使用されました。要約すると、次回は忘れてしまうのではないかと思います。

1. 送信されたコンテンツと一致するコンテンツをデータベースで検索します

例: 送信されたデータが「水泳」の場合、データベース内の「水泳が好き」という単語は一致するとみなされますが、これはまだ一致していません。たとえば、私が提出したのは「週末に水泳に行きます」というもので、実際には似たような意味の「水泳」に関するコンテンツがありましたが、like を使用して見つけることができなかったので、次のように考えました。関数にカプセル化された SQL:

function getRelationTags( $tagTitle,$cols="*")
{
$titleFeildStrLen = 24; //3*8 4 つの漢字または 24 文字。
if ("" == $tagTitle) return false;

$sql = " select $cols from ".$TableName." where title != '' and (LOCATE(title,'$tagTitle') or ((issystem = 1 or LENGTH( title) <= $titleFeildStrLen) とタイトルのような '%" .$tagTitle."%' )) LENGTH(title) で並べ替えます ";
$data =& $db->getAll($sql);
if( DB::isError($data)){
return $this ->returnValue($data->getMessage());
}else{
return $data;
}
}

sql:

を見てくださいselect $cols from ".$TableName." where title != ' ' and (LOCATE(title,'$tagTitle') or ((issystem = 1 or LENGTH(title) <= $titleFeildStrLen) and title like '%" .$tagTitle."%' )) LENGTH(title) で並べ替えます

実際には、これは 2 回の照合で、1 回目は送信されたタグをデータベース内のタグと照合する前方照合で、2 回目はデータベース内のタグと照合します。送信されたタグを含むデータベース。

重要なのは LOCATE() 関数で、これも長さを制限します。これは、mysql のエンコーディングが次のとおりであるためです:

set names 'utf8'

これは utf8 であるため、中国語の文字は 3 バイトを占め、文字だけが必要になります。は 1 バイトを占めるため、上記:

$titleFeildStrLen = 24;

は、一致するタグの範囲内の 8 文字と 24 文字です。


2. 同様の並べ替え

たとえば、データベースの内容は次のとおりです:

Beijing 1023 1

Tianjin 2301 1

Shanghai 3450 1

Tianjin 4520 1

Beijing 3 902 1

それでは私はすべての都市データを抽出し、各都市データの合計数を他の都市の合計数と比較して並べ替えたいとします。

関数コードは次のとおりです:

function getMostCity($num)

{

$sql = "select count(id) as num,city from ".$TableName." where city != '' group by数値による都市の順序制限 0,$num;";

$data =& $db->getAll($sql);

if($db->isError($data))

return false;

else

Return $data;

}

上記の SQL ステートメントに注目してみましょう:

select count(id) as num,city from ".$TableName" where city != '' group by city. order by num desc limit 0,$num

中心となるのは都市ごとのグループであり、類似した都市を集めて、それらを最も多いものから最も少ないものへと並べ替えます。


作成者: heiyeluren

writeTime: 2005-07-01 14:35



関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート