MySQL查詢表字段使我們經(jīng)常會遇到的問題,下文對MySQL查詢表字段的方法作了詳細的說明介紹,希望對您能夠有所幫助。
創(chuàng)新互聯(lián)主營嘉蔭網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App制作,嘉蔭h5微信平臺小程序開發(fā)搭建,嘉蔭網(wǎng)站營銷推廣歡迎嘉蔭等地區(qū)企業(yè)咨詢
mysql中怎么查詢表中的字段個數(shù)?
方法一,在你的程序中直接
desc tablename
然后總行數(shù)就是你的字段數(shù)。
SQL code
mysql desc ysks;
+-------+---------------+-----
| Field | Type | Null
+-------+---------------+-----
| 單號 | int(11) | YES
| 金額 | decimal(10,2) | YES
| 已收 | decimal(10,2) | YES
| 日期 | bigint(20) | YES
| 名稱 | varchar(10) | YES
| 余額 | decimal(10,2) | YES
| 備注 | varchar(10) | YES
| 品名 | varchar(10) | YES
+-------+---------------+-----
8 rows in set (0.06 sec)
mysql select FOUND_ROWS();
+--------------+
| FOUND_ROWS() |
+--------------+
| 8 |
+--------------+
1 row in set (0.06 sec)
mysql
方法二,通過系統(tǒng)表information_schema.`COLUMNS` ( mysql5以上版本支持)
SQL code
mysql select count(*) from information_schema.`COLUMNS`
- where TABLE_SCHEMA='csdn'
- and TABLE_NAME='ysks';
+----------+
| count(*) |
+----------+
| 8 |
+----------+
1 row in set (0.06 sec)
mysql
方法一:
可以用%來實現(xiàn)
SELECT * FROM users WHERE emails like "%b@email.com%";
但是這樣子的話就會把bb@email.com也查出來了就不符合需求了
方法二:
利用mysql 字符串函數(shù) find_in_set();
SELECT * FROM users WHERE find_in_set('aa@email.com', emails);
這樣子就可以找到email字段里包含有aa@emial.com的所有用戶了
要注意的是:mysql字符串函數(shù) find_in_set(str1,str2)函數(shù)是返回str2中str1所在的位置索引,str2必須以","分割開。
1、mysql中創(chuàng)建測試表,create table test_user(id int, name varchar(20));
2、插入測試數(shù)據(jù),
insert into test_user values(1001,'jack');
insert into test_user values(1002,'lucy');
insert into test_user values(1003,'mike');
insert into test_user values(1004,'john');
insert into test_user values(1005,'may');
3、查看表中所有數(shù)據(jù),select * from test_user
4、編寫sql,查詢name列是否有jack名,
select * from test_user t where name = 'jack'
查詢命令 show columns from 表名
紅色框里的“6”代表的是行數(shù)
1、排序C列的名字,使得相同的名字集中到一起(假設(shè)從C1開始都是人名,一直到C100),然后
2、在D1中輸入數(shù)字:1
3、在D2中輸入:=if(C1=C2,D1+1,1)
注:即判斷是否重名,如果重名就+1,不重名就是新的名字,則重新記1
4、選中D2并雙擊單元格右下角的小黑點填充D列,得到一個初步的同名統(tǒng)計
5、在E100中輸入:=D100
6、在E99中輸入:=if(D100=1,D99,”“)
注:E列中只保留每個名字重復(fù)的次數(shù)
7、在Sheet2中的C1中輸入:=if(sheet1!E1=0,"",sheet1!C1)
注:只有sheet1中記錄了名字重復(fù)次數(shù)的行中的名字被填入Sheet2中
8、在Sheet2中的D1中輸入:=if(C1=0,"",Sheet1!E1)
9、選擇Sheet2中的C1、D1列,然后向下填充至100行
10、得出了要的結(jié)果,但是中間會有很多空行,如果要消除空行,那么,請復(fù)制C1:D100的區(qū)域,然后粘貼到E1:F100中并選擇”值和數(shù)字格式“,然后將E列排序一下即可。
select * from (
select
tablename_tmp.*,
@rownum:=@rownum+1 rownum,
if(@pstatus=status ,@rank:=0,@rank:=1) as rank,
@pstatus := tablename_tmp.status
from (
select * from tablename1
)
tablename_tmp ,
(select @rownum :=0 , @pstatus := null ,@rank:=0) a
) a
where a.rank=1 or a.status=0
order by a.rownum