有没有办法查询我的数据库,以便跳过空白值?

时间:2014-07-23 17:35:56

标签: mysql

我当前的脚本从数据库中提取一个值,展开该位置并将其提供给Google的地理编码API。

但是,有些组织(我为其提取位置)是空白的。例如,我有

Org#1 Alabama
Org#2 Kentucky
Org#3 
Org#4 California

我知道我可以使用if / else语句来过滤掉空条目,但我想知道是否有办法从我的数据库查询中执行此操作,这样就不会浪费额外的脚本编写时间空条目。

我当前的查询如下:

$sql = "SELECT Name As org FROM Orgs WHERE Org=".$Org; // get organization that matches org ID
 $org = sql_return_one_number($db_connection, $sql); // magic
   $orgrep = str_replace(" ", "+", $org); //remove all spaces and add a + sign for google API purposes 
$latlong = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=$orgrep&sensor=false&key=KEY"); // pass info to google
$output=json_decode($latlong); //store it
 $status=$output->status;

4 个答案:

答案 0 :(得分:2)

您可以使用where子句,例如:

where name is not null
where name <> ''
where name <> '' and name is not null
where name is like 'Org#%' and name is not like 'Org#% %'

目前还不清楚你的意思是&#34;空白&#34;。第一个工作如果空白是NULL,第二个是空字符串,第三个是NULL或空字符串,第四个是名字以#Org#&#39;

答案 1 :(得分:1)

您只需向查询添加AND location NOT NULLAND location <> ''(取决于字段是空还是空)。

答案 2 :(得分:1)

只需在WHERE子句中添加另一个条件:

SELECT Name AS org
FROM Orgs
WHERE Org = ?
AND Name != ''

如果是空白,则表示NULL

SELECT Name AS org
FROM Orgs
WHERE Org = ?
AND Name IS NOT NULL

答案 3 :(得分:1)

你可以通过几种不同的方式做到这一点。可以在查询中添加更多子句,也可以在将$ orgrep传递给google之前检查$ orgrep。

SELECT Name AS org FROM Orgs WHERE Org=? AND (Name IS NOT NULL OR Name != '')

OR

$sql = "SELECT Name As org FROM Orgs WHERE Org=".$Org; // get organization that matches org ID
$org = sql_return_one_number($db_connection, $sql); // magic
$orgrep = str_replace(" ", "+", $org); //remove all spaces and add a + sign for google API purposes 
if (!empty($orgrep)) {
    $latlong = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=$orgrep&sensor=false&key=KEY"); // pass info to google
    $output=json_decode($latlong); //store it
    $status=$output->status;
}