簡體   English   中英

可能的MySql語法問題

[英]Possible MySql syntax issue

我試圖弄清楚為什么我的查詢無法正常工作,但是對我來說這沒有意義。 我正在通過php訪問數據庫,該數據庫列出了各州及其所屬城市/城鎮,並且我有一個JavaScript腳本將其顯示為菜單。 每個州的ID都會增加100,000(在數據庫中,“阿拉巴馬州”的值為100,000,而“阿拉斯加”的值為200,000。)因此,我在MySQL中測試了查詢並正常工作,並測試了被發送到php腳本,這是正確的腳本,但是返回的菜單包含的值比應有的更多。

我的查詢看起來像:

mysql_query("SELECT * FROM fullstates WHERE code > '$state' AND code < '$state' + 100000");

其中state是先前選擇的狀態的ID。 我唯一能想到的是AND不能正常工作?

您的代碼是數字還是文本? 似乎它們應該是數字,在這種情況下,您應該刪除單引號:

mysql_query("SELECT * FROM fullstates WHERE code > $state AND code < ($state + 100000)");

您還應該將此參數化,但這是另一個問題。

mysql_query("SELECT * FROM fullstates WHERE code > '$state' AND code < '$state' + 100000");

... 200,000> 100,000和200,000 <100,000 + 100,000

如果state的值= 100,000並且代碼為200,000,則第一個布爾值評估為true,但是現在您檢查的是code(200,000)是否小於state(100,000)+ 100,000。

換句話說,您要檢查200,000 <200,000,所以您的檢查是WHERE(TRUE [第一個表達式]和FALSE [第二個表達式])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM