SQL文の最適化

WBOY
リリース: 2016-06-20 12:27:27
オリジナル
903 人が閲覧しました

2 つのテーブルでキーワードを検索し、キーワードに対応する ID をクエリします。

$keyword = "XX";       //关键字$sql1= "select id from table1 where title like "%$keyword%";$result1 = $this->db->getAll($sql1);     //sql执行后返回的id数组foreach($result1a as $k=>$v){                 $result1[$k]['flat'] = 1;           //给一个标识, 让我知道这是从table1里查出来的}$sql2= "select id from table2 where title like "%$keyword%";$result2 = $this->db->getAll($sql2);foreach($result2a as $k=>$v){                $result2[$k]['flat'] = 2;} $result = array_merge_recursive($result1, $result2);
ログイン後にコピー


ディスカッションへの返信 (解決策)

どのような問題が発生しましたか? ?

1. $result1a と $result1b は両方とも空です。ループには意味がありません。
2. ループ本体は役に立たないようです。 🎜>問題を明確に説明してください

何か問題がありますか? ?


1. $result1a と $result1b は両方とも空です。ループは意味がありません。
2. ループ本体は役に立たないようです。

問題を明確に説明してください


result1a ->result1,

result2a ->result2,

sql1 と sql2 をそれぞれ 1 つの SQL 文に結合し、次のようにします。これらはマーク
に相当します。 SQL を実行すると、次の型が返されます:
array(
array("id" => 4, " flat" => 1 ),
array ( "id" => 7, "フラット" => 1),
array( "id" => 4,"フラット" => 2)





$keyword = "XX";       //关键字 $sql1= "select id from table1 where title like "%$keyword%";$result1 = $this->db->getAll($sql1);     //sql执行后返回的id数组foreach($result1 as $k=>$v){                 $result1[$k]['flat'] = 1;           //给一个标识, 让我知道这是从table1里查出来的} $sql2= "select id from table2 where title like "%$keyword%";$result2 = $this->db->getAll($sql2);foreach($result2 as $k=>$v){                $result2[$k]['flat'] = 2;}  $result = array_merge_recursive($result1, $result2);
ログイン後にコピー

クエリを 1 回実行するだけで、以下のマージされた配列は省略できます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!