mysql> select * , retail_price + price AS amount from products where amount >=2000;
ERROR 1054 (42S22): Unknown column 'amount' in 'where clause'
mysql> select * , retail_price + price AS amount from products where retail_price+price >=2000;
+----+-----------+--------------------+--------------+-------+------------------+----------------+----------------------------+----------------------------+--------+
| id | name | image | retail_price | price | ingredient_image | delivery_guide | created_at | updated_at | amount |
+----+-----------+--------------------+--------------+-------+------------------+----------------+----------------------------+----------------------------+--------+
| 8 | 왕꿈틀 | 왕꿈틀이미지 | 1900 | 1500 | NULL | NULL | 2020-04-28 16:47:34.147067 | 2020-04-28 16:47:34.147133 | 3400 |
+----+-----------+--------------------+--------------+-------+------------------+----------------+----------------------------+----------------------------+--------+
1 row in set (0.00 sec)
앞에서 amount 라고 별명을 지어 주어도 사용할수가 없다
왜 ?? == > where 문이 먼지 읽혀지기 때문이다.
where 구 -> select 구 의 순서로 처리됨
하지만 order 문은 다르다
mysql> select *,retail_price + price AS amount from products order by amount desc;
+----+-----------------+--------------------+--------------+-------+------------------+----------------+----------------------------+----------------------------+--------+
| id | name | image | retail_price | price | ingredient_image | delivery_guide | created_at | updated_at | amount |
+----+-----------------+--------------------+--------------+-------+------------------+----------------+----------------------------+----------------------------+--------+
| 8 | 왕꿈틀 | 왕꿈틀이미지 | 1900 | 1500 | NULL | NULL | 2020-04-28 16:47:34.147067 | 2020-04-28 16:47:34.147133 | 3400 |
| 7 | 프레첼 | 프레첼이미지 | 400 | 450 | NULL | NULL | 2020-04-28 16:44:59.708156 | 2020-04-28 16:44:59.708191 | 850 |
| 6 | 하리보 | 하리보이미지 | 100 | 150 | NULL | NULL | 2020-04-28 16:44:36.731234 | 2020-04-28 16:44:36.732927 | 250 |
| 1 | 초코빼빼로 | 초코이미지 | 920 | NULL | NULL | NULL | 2020-04-25 17:03:10.411578 | 2020-04-25 17:03:10.413312 | NULL |
| 2 | 진라면 | 진라면 | 2950 | NULL | NULL | NULL | 2020-04-25 17:03:35.312067 | 2020-04-25 17:03:35.312108 | NULL |
| 3 | 육개장 | 육개장이미지 | 18990 | NULL | NULL | NULL | 2020-04-25 17:04:00.549572 | 2020-04-25 17:04:00.549636 | NULL |
| 4 | 너구리 | 너구리이미지 | 4250 | NULL | NULL | NULL | 2020-04-25 17:04:25.844234 | 2020-04-25 17:04:25.844432 | NULL |
| 5 | 씨리얼 | 씨리얼 | 660 | NULL | NULL | NULL | 2020-04-25 17:04:59.212406 | 2020-04-25 17:04:59.212440 | NULL |
+----+-----------------+--------------------+--------------+-------+------------------+----------------+----------------------------+----------------------------+--------+
where 문과 달리 이것이 가능한 이유는 ,
order 문은 select 문이 실행되고 난뒤에 실행이 된다
select 구 => order by 구 실행됨
where 구 => select 구 => order by 구
순으로 실행이 된다.
sql , wecode