Jump to content
  • 0

Как правильно составлять SQL запросы?


Вадим Некрасов
 Share

Question

В документации mysql команды пишут так: mysql> SELECT * FROM pet WHERE name = "Bowser"; (как я понял их прописывают в консоли).

А в учебнике по которому я учусь запросы пишут в виде строки примерно так: "select * from mybd where name="Вася" "

И в конце получается две скобки и это приводит к ошибке синтаксиса. Я работаю в денвере и веб-сервере.  Как записать запрос правильно? Чтобы и в виде строки и без ошибки синтаксиса. 

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0

И добавлю - подходи к процессу творчески. чтобы на запрос ещё и смотреть было приятно. чтобы в одну строку не превращалось

 

из опыта - чем красивее его написать, тем понятнее будет где ты накосячил, что исправить и нафига он вообще нужен

Link to comment
Share on other sites

  • 0

И добавлю - подходи к процессу творчески. чтобы на запрос ещё и смотреть было приятно. чтобы в одну строку не превращалось

 

из опыта - чем красивее его написать, тем понятнее будет где ты накосячил, что исправить и нафига он вообще нужен

Да я это понимаю))  :D

Link to comment
Share on other sites

  • 0
MONTH(FROM_UNIXTIME(int_val)) AS 'm', YEAR(FROM_UNIXTIME(int_val)) AS 'y', COUNT(MONTH(FROM_UNIXTIME(int_val))) AS cnt  FROM  (SELECT DISTINCT  h.id, c2.int_val   FROM  _hierarchy_relations hr,  _objects o,  _hierarchy h, _object_content c1, _object_content c2    WHERE h.obj_id = o.id  AND h.is_deleted = '0'  AND ( c2.obj_id = o.id    AND c2.field_id = '{$i_field_id}' {$sf} )  AND (   ( 	hr.child_id = h.id  	AND (   hr.rel_id = '$category_id'    AND hr.level <= '{$i_need_deep}' )   ) )  AND h.is_active = '1'  AND h.type_id IN ('{$hierarchy_type_id}')  AND c1.obj_id = c2.obj_id    ORDER BY h.ord DESC) AS s  GROUP BY MONTH(FROM_UNIXTIME(int_val)), YEAR(FROM_UNIXTIME(int_val)) ORDER BY YEAR(FROM_UNIXTIME(int_val)) DESC, MONTH(FROM_UNIXTIME(int_val)) DESC

А ты проверь  =) при первом варианте написания. факт того что ты налепишь фигни - 80%

Во втором варианте столько же)))

НО в первом варианте факт того что ты найдешь место где ты налепил фигни - 20% и мазоли на глазах

Во втором случае 80% =)

                                MONTH(FROM_UNIXTIME(int_val)) AS 'm', YEAR(FROM_UNIXTIME(int_val)) AS 'y',					  COUNT(MONTH(FROM_UNIXTIME(int_val))) AS cnt 					FROM					  (SELECT DISTINCT 						h.id,						c2.int_val 					  FROM						 _hierarchy_relations hr,						 _objects o,						 _hierarchy h,						 _object_content c1,						 _object_content c2 					  WHERE h.obj_id = o.id 						AND h.is_deleted = '0' 						AND (						  c2.obj_id = o.id 						  AND c2.field_id = '{$i_field_id}'						{$sf}						) 						AND (						  (							hr.child_id = h.id 							AND (							  hr.rel_id = '$category_id' 							  AND hr.level <= '{$i_need_deep}'							)						  )						) 						AND h.is_active = '1' 						AND h.type_id IN ('{$hierarchy_type_id}') 						AND c1.obj_id = c2.obj_id 					  ORDER BY h.ord DESC) AS s 					GROUP BY MONTH(FROM_UNIXTIME(int_val)), YEAR(FROM_UNIXTIME(int_val))					ORDER BY YEAR(FROM_UNIXTIME(int_val)) DESC, MONTH(FROM_UNIXTIME(int_val)) DESC
Link to comment
Share on other sites

  • 0
MONTH(FROM_UNIXTIME(int_val)) AS 'm', YEAR(FROM_UNIXTIME(int_val)) AS 'y', COUNT(MONTH(FROM_UNIXTIME(int_val))) AS cnt  FROM  (SELECT DISTINCT  h.id, c2.int_val   FROM  _hierarchy_relations hr,  _objects o,  _hierarchy h, _object_content c1, _object_content c2    WHERE h.obj_id = o.id  AND h.is_deleted = '0'  AND ( c2.obj_id = o.id    AND c2.field_id = '{$i_field_id}' {$sf} )  AND (   ( 	hr.child_id = h.id  	AND (   hr.rel_id = '$category_id'    AND hr.level <= '{$i_need_deep}' )   ) )  AND h.is_active = '1'  AND h.type_id IN ('{$hierarchy_type_id}')  AND c1.obj_id = c2.obj_id    ORDER BY h.ord DESC) AS s  GROUP BY MONTH(FROM_UNIXTIME(int_val)), YEAR(FROM_UNIXTIME(int_val)) ORDER BY YEAR(FROM_UNIXTIME(int_val)) DESC, MONTH(FROM_UNIXTIME(int_val)) DESC

А ты проверь  =) при первом варианте написания. факт того что ты налепишь фигни - 80%

Во втором варианте столько же)))

НО в первом варианте факт того что ты найдешь место где ты налепил фигни - 20% и мазоли на глазах

Во втором случае 80% =)

                                MONTH(FROM_UNIXTIME(int_val)) AS 'm', YEAR(FROM_UNIXTIME(int_val)) AS 'y',					  COUNT(MONTH(FROM_UNIXTIME(int_val))) AS cnt 					FROM					  (SELECT DISTINCT 						h.id,						c2.int_val 					  FROM						 _hierarchy_relations hr,						 _objects o,						 _hierarchy h,						 _object_content c1,						 _object_content c2 					  WHERE h.obj_id = o.id 						AND h.is_deleted = '0' 						AND (						  c2.obj_id = o.id 						  AND c2.field_id = '{$i_field_id}'						{$sf}						) 						AND (						  (							hr.child_id = h.id 							AND (							  hr.rel_id = '$category_id' 							  AND hr.level <= '{$i_need_deep}'							)						  )						) 						AND h.is_active = '1' 						AND h.type_id IN ('{$hierarchy_type_id}') 						AND c1.obj_id = c2.obj_id 					  ORDER BY h.ord DESC) AS s 					GROUP BY MONTH(FROM_UNIXTIME(int_val)), YEAR(FROM_UNIXTIME(int_val))					ORDER BY YEAR(FROM_UNIXTIME(int_val)) DESC, MONTH(FROM_UNIXTIME(int_val)) DESC

Естественно! 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy