0
我再次遇到另一個SQL問題。使用Zend框架的SQL重查詢
我有2個表:
CREATE TABLE cities(
city_id INT PRIMARY KEY,
city_name TEXT,
city_lat TEXT,
city_long TEXT
);
CREATE TABLE entries(
entry_id INT PRIMARY KEY,
city_name TEXT
);
這是最有趣的部分。
我試圖使通過半徑的搜索,這意味着我想要得到的城市的名字在我正在尋找這個城市的10公里(用於爲例)半徑。
查詢會是這樣的
SELECT * FROM entries WHERE entries.city_name LIKE [all the cities in the radius].
我有一個SQL查詢來獲取相應的城市我要的是:
SELECT `city_name`, (6371 * acos(cos(radians($cooLat)) * cos(radians(city_lat)) * cos(radians(city_long) - radians($cooLong)) + sin(radians($cooLat)) * sin(radians(city_lat)))) AS distance FROM cities HAVING distance < $radius ORDER BY distance
$ cooLong和$ cooLat是PHP變量我傳入調用該請求的函數。
所以從選擇,我得到一個行集,但我不知道如何將2混合,讓我將使用第二個查詢結果中的第一個最終的查詢。
無論如何,即使我通過第一個問題搞定了,我將有數目不詳的比賽。 請問我要產生通過執行類似的要求:
SELECT * FROM entries WHERE entries.city_name LIKE 'name_a' OR entries.city_name LIKE 'name_b' OR entries.city_name LIKE 'name_c' ...
和對城市的每一個?