ホームページ バックエンド開発 PHPチュートリアル and と OR を使用して、複数のフィールドに基づいて SQL ステートメントを生成します。

and と OR を使用して、複数のフィールドに基づいて SQL ステートメントを生成します。

Jun 13, 2016 pm 01:16 PM
comparator quot

複数のフィールドに基づいて SQL ステートメントを生成するには AND と OR があります。
以下に示すようなデータ テーブル情報があります。それらを SQL に結合する良い方法はありますか。すべて AND またはすべて OR の場合、この方法は簡単です。を処理しますが、両方持っている場合はどうすればよいですか?



すべてが AND または OR の場合

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
        $sql = "select * from sk_cvfilter where cvid=58 and columnname!=''";
        $query = mysql_query($sql);
        $sql = '';
        while($row = mysql_fetch_assoc($query)){
            if($row['comparator']=='eq'){$comparator="=";}
            else{$comparator=$row['comparator'];}
            $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' ';
        }

ログイン後にコピー


------解決策------
SQL コード
select * from sk_cvfilter where cvid=58 and columnname!='' and andor='and' または andor='or'
<br><font color="#e78608">------解決策------------------</font><br>あなたのこの記録には問題があります。なぜですか? <br><br>例えば、(a = 1 or (b=2 and b=3)) が出た場合、どのように記録しますか? <br><br>こんな感じだと思います<br><br>columnname comparator value andor<br>a eq 1 or<br>b eq 2 and<br>c eq 3 <br><br>質問このとき、上記の関係(a=1 or (b=2 and b=3))を知らないと、<br>構造だけを見ると<br><br>( a = 1 or b =2 ) and b = 3<br><br>or<br><br> a = 1 or (b=2 and b=3)<br><br>上記の問題は考慮されていません、all or is 条件とその他の条件の書き方と<br><br><br>
ログイン後にコピー
PHP コード

<?php

$sql = "select * from sk_cvfilter where cvid=58 and columnname!=''";
$query = mysql_query($sql);
$sql = '';

//前の文が かどうかを記録します
$is_last_or = false;


while($row = mysql_fetch_assoc($query)){
    if($row['comparator']=='eq'){$comparator="=;}
    else{$comparator=$row['comparator'];}
    
    
    if($is_last_or) {
        if($row['andor'] == 'and') {
            // 次の文との関係は and で、括弧がもうすぐ終了することを示します。
            $sql .=$row['columnname'].$comparator."'".$row['value']."' ) ".$row['andor'].';
        } それ以外 {
            //括弧内の内容を続けます
            $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].';
        }
    elseif($row['andor'] == 'or') {
        // or がある場合は、次の文と or 関係があることを意味します (ここに括弧がないため)
        $is_last_or = true;
        //かっこを追加します
        $sql .= '( ' . $row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' ';
    } それ以外 {
        $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].';
    }
    
}
<br><font color="#e78608">------解決策---------</font><br>
ログイン後にコピー
PHP コード

<?php

$sql = "select * from sk_cvfilter where cvid=58 and columnname!=''";
$query = mysql_query($sql);
$sql = '';

//前の文が かどうかを記録します
$is_last_or = false;


while($row = mysql_fetch_assoc($query)){
    if($row['comparator']=='eq'){$comparator="=;}
    else{$comparator=$row['comparator'];}
    
    
    if($is_last_or) {
        if($row['andor'] != 'or') {
            // 次の文との関係は and or end であり、括弧がまもなく終了することを示します。
            $sql .=$row['columnname'].$comparator."'".$row['value']."' ) ".$row['andor'].';
        } それ以外 {
            //括弧内の内容を続けます
            $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].';
        }
    elseif($row['andor'] == 'or') {
        // or がある場合は、次の文と or 関係があることを意味します (括弧がないため)
        $is_last_or = true;
        //かっこを追加します
        $sql .= '( ' . $row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' ';
    } それ以外 {
        $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].';
    }
    
<div class="clear"></div>
ログイン後にコピー
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Comparable と Comparator を使用して Java で並べ替えを削除する方法 Comparable と Comparator を使用して Java で並べ替えを削除する方法 May 11, 2023 pm 03:43 PM

1. 並べ替えと重複排除 日常業務では、結果セットのフィルタリングが必要なシナリオが常に存在します。たとえば、サードパーティとの対話後に取得した結果セットを再度並べ替えて重複排除する必要がある場合、結果セットは特定のフィールドに従って重複排除されるか、特定のフィールドによって並べ替えられます。 Java では、重複排除に関して言えば、Set (順序なし、重複なし) の特性を簡単に考えることができます。また、TreeSet (順序付き、重複なし) では重複排除ルール (通常、重複排除後の結果セットは昇順) を指定することもできます。並べ替えというと、さまざまな並べ替えアルゴリズムが簡単に思いつきますが、Java にはコレクションの sort() メソッドなどの並べ替え関数がすでに提供されており、並べ替えフィールドや昇順、降順を指定することもできます。ここでもう一つ言わせてください、Set の特徴 (順序なし、重複なし): 無秩序: 無秩序

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Java で Comparable と Comparator を使用する方法 Java で Comparable と Comparator を使用する方法 May 03, 2023 am 10:07 AM

Comparable と ComparatorComparable と Comparator は、2 つの Java ソート関連インターフェイスであり、ナチュラル ソートおよびカスタム ソートとも呼ばれます。最近関連コンテンツを読んだので、以下に私自身の学習状況を記録します。 Comparable と Comparator はソートに関する 2 つのインターフェイスであり、Java コレクションにソート機能を実装するために使用されます。特定の機能はAPIを参照することで取得できます。 API ドキュメントからの簡単な紹介を以下に示します。 このインターフェイスは、影響を与える各クラスのオブジェクトに全体的な順序付けを課します。

Javaでコンパレータを使用する方法 Javaでコンパレータを使用する方法 May 10, 2023 pm 06:31 PM

1. Java が比較用の比較インターフェイス Comparable を提供していることを説明します。このインターフェイスを実装するすべてのクラスは、この比較メソッドを動的に実装します。実際、Java は比較インターフェイスを提供するだけでなく、別のインターフェイスも提供します。 Comparator インターフェースにも比較機能がありますが、このインターフェースはコンテナーの比較に重点を置いています。 2. Instance Comparator は Java8 以前に広く使用されていました。 Java8 では、関数型インターフェイスがアップグレードされるだけでなく、デフォルトのメソッドも拡張されます。 Comparatorcomparator=(p1,p2)->p1.firstName.compareTo(p2.firstName);personp1=ne

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。

写真が消える問題を解決する方法 写真が消える問題を解決する方法 Apr 07, 2024 pm 03:02 PM

写真が消える問題を解決する方法 まず、写真ファイル $file=$_FILES['userfile']; if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner() image_src) VALUES ('images/ {$file['name'

为什么小弟我在php上写的这个代码,在浏览器上什么都不显示 为什么小弟我在php上写的这个代码,在浏览器上什么都不显示 Jun 13, 2016 am 10:24 AM

为什么我在php上写的这个代码,在浏览器上什么都不显示啊

图片消失怎么解决 图片消失怎么解决 Jun 13, 2016 am 10:09 AM

图片消失如何解决先是图片文件上传$file=$_FILES['userfile'];  if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

See all articles