2013-04-07 1 views
4

Я пытаюсь сделать запрос select на MySQL с phpMyAdmin или PHP с PDO.MySQL SELECT с полями меньше и больше значений

SELECT 'uid' FROM 'clusters' WHERE 'lat'<='47.21125' AND 'lat'>='39.21125' AND 'lng'<='32.90243' AND 'lng'>='22.90243' 

Однако PHPMYADMIN говорит:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''clusters' WHERE 'lat'<='47.21125' AND 'lat'>='39.21125' AND 'lng'<='32.90243' A' at line 1 

Что с ней?

+0

Дубликат http://stackoverflow.com/questions/11321491/mysql-when-to-use-single-quotes-double-quotes-and-backticks –

ответ

8

'' создает строковый литерал в MySQL, поэтому ваш запрос выбирает буквальный «uid» из литеральных «кластеров», что является недопустимым. Используйте backtics (или ничего)

SELECT Uid FROM clusters WHERE lat <= 47.21125 AND lat >= 39.21125 
AND lng >= 22.90243 
+0

я просто хочу скажем, это не я, кто дает понижение голосов. однако вы не должны использовать котировку для двойного значения. – ajreal

+0

@ajreal Я не думаю, что это имеет значение, но я отредактировал свой ответ, чтобы удалить их –

+0

Цитата заставит mysql выполнять ненужное кастинг, что ни в коем случае ... индекс можно было бы проигнорировать (однако, SQL по OP не использует индекс) – ajreal

Смежные вопросы