有and 有OR的依据几个字段生成SQL语句
有and 有OR的根据几个字段生成SQL语句
有如下图的数据表信息,有什么好的方法把它们组合成一条SQL?如果全是and 的或者全是or的,这方法好办,可是两个同时都有的,怎么办呢?
全是AND 或OR的话
- PHP code
<!-- 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 code
select * from sk_cvfilter where cvid=58 and columnname!='' and andor='and' or 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>还是<br><br> a = 1 or (b=2 and b=3)<br><br>上述问题不考虑,所有or为一个条件和其他条件and的写法<br><br><br>
- PHP code
<?php $sql = "select * from sk_cvfilter where cvid=58 and columnname!=''"; $query = mysql_query($sql); $sql = ''; // 记录上一句的是不是or $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'].' '; } else { // 持续括号里的内容 $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' '; } } elseif($row['andor'] == 'or') { // 如果有or则意味着和下一句有或的关系(因为你这里没有括号) $is_last_or = true; // 加上括号吧 $sql .= '( ' . $row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' '; } else { $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' '; } } <br /><font color="#e78608">------解决方案--------------------</font><br>
- PHP code
<?php $sql = "select * from sk_cvfilter where cvid=58 and columnname!=''"; $query = mysql_query($sql); $sql = ''; // 记录上一句的是不是or $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或者结束了关系说明括号要结束了 $sql .=$row['columnname'].$comparator."'".$row['value']."' ) ".$row['andor'].' '; } else { // 持续括号里的内容 $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' '; } } elseif($row['andor'] == 'or') { // 如果有or则意味着和下一句有或的关系(因为你这里没有括号) $is_last_or = true; // 加上括号吧 $sql .= '( ' . $row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' '; } else { $sql .=$row['columnname'].$comparator."'".$row['value']."' ".$row['andor'].' '; } } <div class="clear">

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



1. Sortieren und Deduplizieren In der täglichen Arbeit gibt es immer wieder Szenarien, die eine gewisse Filterung der Ergebnismenge erfordern. Beispielsweise muss der nach der Interaktion mit Dritten erhaltene Ergebnissatz erneut sortiert und dedupliziert werden. In diesem Fall wird der Ergebnissatz nach einem bestimmten Feld dedupliziert oder nach einem bestimmten Feld sortiert. Wenn es um Deduplizierung geht, können wir uns in Java leicht die Eigenschaften von Set (ungeordnet, keine Duplizierung) vorstellen, und TreeSet (geordnet, keine Duplizierung) kann auch Deduplizierungsregeln angeben (im Allgemeinen aufsteigende Ergebnismengen nach der Deduplizierung). Wenn es um das Sortieren geht, können wir uns leicht verschiedene Sortieralgorithmen vorstellen, aber Java bietet bereits Sortierfunktionen, wie zum Beispiel die Methode sort() in Sammlungen, und Sie können auch die Sortierfelder sowie die aufsteigende und absteigende Reihenfolge angeben. Lassen Sie mich hier noch etwas sagen, die Merkmale von Set (keine Reihenfolge und keine Duplizierung): Störung: Störung

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

Comparable und ComparatorComparable und Comparator sind zwei mit der Java-Sortierung verbundene Schnittstellen, die auch als natürliche Sortierung und benutzerdefinierte Sortierung bezeichnet werden. Ich habe kürzlich relevante Inhalte gelesen und werde nun unten meinen eigenen Lernstand aufzeichnen. Comparable und Comparator sind zwei Schnittstellen zum Sortieren, die zum Implementieren der Sortierfunktion in Java-Sammlungen verwendet werden. Die spezifischen Funktionen können durch Anzeigen der API abgerufen werden. Vergleichbar Hier ist eine kurze Einführung aus der API-Dokumentation: Diese Schnittstelle erzwingt eine vollständige Reihenfolge für die Objekte jeder Klasse, die diese Bedeutung hat

1. Erklären Sie, dass Java eine Vergleichsschnittstelle Comparable zum Vergleich bereitstellt. Alle Klassen, die diese Schnittstelle implementieren, implementieren diese Vergleichsmethode dynamisch. Tatsächlich bietet Java nicht nur eine Vergleichsschnittstelle, sondern auch eine andere Schnittstelle. Die Comparator-Schnittstelle verfügt ebenfalls über eine Vergleichsfunktion, diese Schnittstelle konzentriert sich jedoch auf den Vergleich von Containern. 2. Instanzkomparator wurde vor Java8 häufig verwendet. Java8 aktualisiert nicht nur funktionale Schnittstellen, sondern erweitert auch Standardmethoden. Comparatorcomparator=(p1,p2)->p1.firstName.compareTo(p2.firstName);Personp1=ne

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

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

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