2015-08-23 3 views
-1

Я получаю сообщение об ошибке со следующим SQL. Может быть, второй набор глаз может видеть проблему:Я не уверен, что не так с этим SQL

Ошибка:

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 'WHERE generation_id = 21
LIMIT 0, 25' at line 1

SQL:

SELECT * FROM data ORDER BY competition ASC, avg_monthly_searches DESC, suggested_bid DESC WHERE generation_id = 21 
+1

где положение должно предшествовать порядке – amdixon

+1

Ааа, да, я дурак. – Tapha

+1

убедитесь, что вы прочли документацию https://dev.mysql.com/doc/refman/5.0/en/select.html – Ejaz

ответ

3

Проблема с порядком пунктов. From должны прийти до ORDER BY

SELECT * FROM data WHERE generation_id = 21 
ORDER BY competition ASC, avg_monthly_searches DESC, suggested_bid DESC 

Дополнительная информация

ниже порядок пунктов в SELECT заявление в MySQL. Твой может быть просто опечаткой. Но это может помочь кому-то.

SELECT 
    [ALL | DISTINCT | DISTINCTROW ] 
     [HIGH_PRIORITY] 
     [STRAIGHT_JOIN] 
     [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] 
     [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] 
    select_expr [, select_expr ...] 
    [FROM table_references 
    [WHERE where_condition] 
    [GROUP BY {col_name | expr | position} 
     [ASC | DESC], ... [WITH ROLLUP]] 
    [HAVING where_condition] 
    [ORDER BY {col_name | expr | position} 
     [ASC | DESC], ...] 
    [LIMIT {[offset,] row_count | row_count OFFSET offset}] 
    [PROCEDURE procedure_name(argument_list)] 
    [INTO OUTFILE 'file_name' export_options 
     | INTO DUMPFILE 'file_name' 
     | INTO var_name [, var_name]] 
    [FOR UPDATE | LOCK IN SHARE MODE]] 
0

Использование "WHERE" пункта перед заказом пункта ..

Так Ваш код Превращает в

SELECT * FROM data WHERE generation_id = 21 ORDER BY competition ASC, avg_monthly_searches DESC, suggested_bid DESC 
2

Причины для 1064 ошибки

Это сообщение об ошибке может показаться сначала загадочным. это общая ошибка MySQL, указывающая на некоторую синтаксическую ошибку в выражении SQL Query. Эта ошибка может иметь несколько причин.

Вам нужно изменить в коде, как:

SELECT * FROM данных WHERE generation_id = 21 ORDER BY конкуренции ASC, avg_monthly_searches DESC, suggested_bid DESC

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