我想写一个多条件查询来显示表

时间:2016-03-19 07:02:34

标签: mysql

我有一个名为info的表,其中包含3列:Id,city,country 我需要过滤表格。也就是说,当我搜索城市和国家时,它应该向我显示确切的行,但是当我只搜索该国家时,它应该显示该国家的所有城市。我怎么写条件?

How it is looking right now

我尝试过使用AND和OR但它们只执行一项任务。我当前的查询

SELECT * FROM info WHERE name='$_POST[name1]' AND country='$_POST[country1]'; 

这两个领域的工作和

SELECT * FROM info where name='$_POST[name1]' OR country='$_POST[country1]';

一次在两个字段上搜索时失败

2 个答案:

答案 0 :(得分:0)

name和country都是varchar,所以以这种方式使用LIKE:

SELECT * FROM info WHERE name LIKE '$_POST[name1]' OR country LIKE '$_POST[country1]';

试试这个。

答案 1 :(得分:0)

试试这个:

$condition = '';
$query = ''
if(!empty($_POST[name1])) { $condition .= "and name LIKE '$_POST[name1]' "; }
if(!empty($_POST[country1])){ $condition .= "and country LIKE '$_POST[country1]' "; }
$query = "SELECT * FROM info WHERE Id !='' " . $condition;

mysqli_query($connection,$query);