mysql 查

獲取表有多少行

技巧:select count(*) from table_name;


取出cat_id=4和cat_id=11的列

使用or   select * from goods where cat_id=4 or cat_id=11;

不使用or  select * from goods where cat_id in(4,11); 


取出價格>=100 且<=500

select * from goods where shop_price >= 100 and shop_price <= 500;

select * from goods where shop_price between 100 and 500;


取出價格<=100 且>=500

select * from goods where shop_price <=100 and shop_price >= 500;

select * from goods where shop_price not between 100 and 500;


in是散點的集合,between and是區間 


cat_id不是3也不是11的列

select * from goods where cat_id!=3 and cat_id!=11;

select * from goods where cat_id not in(3,11);


算出比市場價優惠的數值

select goods_id,(market_price-shop_price) as chajia ,goods_name from goods ;


查找本地價格比市場價便宜200以上的

select goods_id,(market_price-shop_price) as chajia ,goods_name from goods where (market_price - shop_price) > 200;


(chajia列是where作用過之後的產生的)


疑點注意:where是對真實表中的數據發揮作用,having可以對where結果進行過濾


select goods_id,(market_price-shop_price) as chajia ,goods_name from goods where chajia > 200;(錯誤的)

作用相同

select goods_id,(market_price-shop_price) as chajia ,goods_name from goods having chajia>200;



把mian表中的num列中 [20,29]改爲20  [30,39]改爲30

update mian set num = floor(num/10)*10 where num between 20 and 39;


like模糊查詢


截取諾基亞後面的內容

select goods_id ,goods_name,substring(goods_name,4) from goods where goods_name like '諾基亞%';


查找有諾基亞開頭的更換爲htc(沒有更改真實表內容)

select goods_id ,goods_name,concat('htc',substring(goods_name,4)) from goods where goods_name like '諾基亞%';


把諾基亞更換爲htc(更改真實表內容)

update goods 

set goods_name = concat('htc',substring(goods_name,4))

where goods_name like '諾基亞%' and cat_id=4;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章