我当前的脚本从数据库中提取一个值,展开该位置并将其提供给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;
答案 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 NULL
或AND 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;
}