mysql - 關(guān)于數(shù)據(jù)庫(kù)中系統(tǒng)metadata方法的問題
問題描述
使用metadata方法,如INFORMATION_SCHEMA.COLUMNS, INFORMATION_SCHEMA.TABLE這種,初學(xué)metadata方法,這里不太理解, 并且對(duì)于mysql不能用with方法不知道怎么解決,如何用一個(gè)語句選出的結(jié)果在另一個(gè)語句中進(jìn)行from操作?臨時(shí)表如何搭建?
CUSTOMER(cid,cname,ccity,cstate,cphone)RESTAURANT(rid,rname,rcity,rstate)MENUITEM(rid,itemname,price)ORDER(oid,cid,rid,ordertime,deliverytime,totalprice,deliveryfee)ORDERDETAIL(oid,rid,itemname,quantity)列出擁有最多attributes的table列出attribute類型為int的attribute名及其table名列出擁有相同attribute和相同數(shù)據(jù)類型的兩個(gè)表
問題解答
回答1:mysql不支持with,臨時(shí)表語法可以百度,”用一個(gè)語句選出的結(jié)果在另一個(gè)語句中進(jìn)行from操作“你是說insert into select么 oracle也有的嘛 臨時(shí)數(shù)據(jù)可以直接用insert into tbl select * from dual插入臨時(shí)表 方法笨了點(diǎn)還是可以實(shí)現(xiàn)的“列出擁有最多attributes的table”和“列出attribute類型為int的attribute名及其table名”在INFORMATION_SCHEMA.COLUMNS中有table_schema,table_name,column_name,data_type,你按需要取值就可以了最后一個(gè)問題可以稍微處理一下數(shù)據(jù)篩選,比如select group_concat(table_name) from (select table_name,group_concat(table_columns) table_atrs from (select table_name,concat(column_name,data_type,ifnull(CHARACTER_MAXIMUM_LENGTH,’’)) table_columns from INFORMATION_SCHEMA.COLUMNS order by table_name,column_name) tbl group by table_name ) aaa group by table_atrs having count(1)>1;整理了一下,這個(gè)sql可以找出你要的結(jié)果,相同結(jié)構(gòu)的表名以逗號(hào)連接展示出來(不包括索引結(jié)構(gòu))
相關(guān)文章:
1. php多任務(wù)倒計(jì)時(shí)求助2. 數(shù)組排序,并把排序后的值存入到新數(shù)組中3. 默認(rèn)輸出類型為json,如何輸出html4. python的正則怎么同時(shí)匹配兩個(gè)不同結(jié)果?5. javascript - jquery怎么讓a標(biāo)簽跳轉(zhuǎn)后保持tab的樣式6. PHP訂單派單系統(tǒng)7. javascript - charles map remote映射問題8. javascript - vue組件的重復(fù)調(diào)用9. mysql - sql 左連接結(jié)果union右連接結(jié)果,導(dǎo)致重復(fù)性計(jì)算怎么解決?10. javascript - console.log(typeof(named));的位置不同,第二個(gè)為什么會(huì)顯示undefined ?
