mysql經(jīng)常會用來查詢特定字段,偶爾會需要展示特定字段中值的某部分,然后還有模糊查詢的時候,如果需要匹配中間的某部分值,這個時候like就很尷尬,會多出一些不相干的記錄
涇縣網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,涇縣網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為涇縣上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的涇縣做網(wǎng)站的公司定做!
一、獲取特定的幾位:
1、取url字段后三位字符
select SUBSTRING(url, -3) from link;
#這種只能針對固定長度,比說url共8個字符,可以下面這種寫法
select RIGHT(`url`,length(`url`)-5) from link;
2、從左開始第3位?。òǖ谌唬?/p>
select SUBSTRING(url, 3) from link;
3、取左邊的3位
select SUBSTRING(url, 1, 3) from link;
#這種只能針對固定長度,比說url共8個字符,可以下面這種寫法
select LEFT(`url`,length(`url`)-5) from link;
4、中間截?。◤牡?位開始取7位,如sDate字段值是 2013-06-07)
select SUBSTRING(sDate, 1,7) from forumdata;
查詢結(jié)果就是 2013-06
二、查詢特定的幾位:
1、正常的模糊查詢
select * from cm_order where ordersn like '%31%';
2、一個字段共有13位,查詢倒數(shù)四五位為31的
select * from cm_order where SUBSTRING(ordersn, 9,2) = 31;
SELECT * from cm_order where RIGHT(`ordersn`,length(`ordersn`)-8) like '31%';
這種如果正常的模糊查詢會出來很多不相干的數(shù)據(jù),但是這種只能針對定長的模糊查詢,效率方面比正常的模糊查詢好很多。
一個表一個表,一個字段一個字段的去查,比如:select
*
from
表1
where
字段1=值
把表導(dǎo)入到sql文件里面,然后打開這個文件,用"查找"的功能找這個值。但是如果表和數(shù)據(jù)庫很大的話,恐怕也不容易導(dǎo)出和打開這個sql文件。
1、一般查詢語句:SELECT `lcontent` FROM `caiji_ym_liuyan`
查詢數(shù)據(jù):
2、有些時候需要查詢某個字段的長度為多少時候才顯示數(shù)據(jù):
SQL語句:SELECT `lcontent` FROM `caiji_ym_liuyan` where
length(lcontent)=40
PS:在mysql中一個漢字等于3個字節(jié),所以查詢的時候需要轉(zhuǎn)換一下
特別要注意的就時候?qū)τ谧止?jié)的轉(zhuǎn)換!
使用
ALTER TABLE 表名 AUTO_INCREMENT = 100;
下面是詳細(xì)例子
mysql CREATE TABLE test_create_tab2 (
- id INT AUTO_INCREMENT,
- val VARCHAR(10),
- PRIMARY KEY (id)
- );
Query OK, 0 rows affected (0.09 sec)
mysql INSERT INTO test_create_tab2(val) VALUES ('NO id');
Query OK, 1 row affected (0.03 sec)
mysql select last_insert_id() as id;
+----+
| id |
+----+
| 1 |
+----+
1 row in set (0.00 sec)
mysql INSERT INTO test_create_tab2(val) VALUES ('NO id 2');
Query OK, 1 row affected (0.03 sec)
mysql select last_insert_id() as id;
+----+
| id |
+----+
| 2 |
+----+
1 row in set (0.00 sec)
mysql select * from test_create_tab2;
+----+---------+
| id | val |
+----+---------+
| 1 | NO id |
| 2 | NO id 2 |
+----+---------+
2 rows in set (0.00 sec)
mysql ALTER TABLE test_create_tab2 AUTO_INCREMENT = 100;
Query OK, 2 rows affected (0.25 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql INSERT INTO test_create_tab2(val) VALUES ('NO id N');
Query OK, 1 row affected (0.03 sec)
mysql select * from test_create_tab2;
+-----+---------+
| id | val |
+-----+---------+
| 1 | NO id |
| 2 | NO id 2 |
| 100 | NO id N |
+-----+---------+
3 rows in set (0.00 sec)
mysql中查出除了某個字段外的所有字段的值方法:
1、如果是查出某個字段以外的字段名?語句為select?name?from?syscolumns?where?id=object_id('表1')?and?name'ID'
2、如果是查出某個字段以外的字段名所包含的值?語句為declare?@a?varchar(max)
MySQL數(shù)據(jù)類型
1、好比C++中,定義int類型需要多少字節(jié),定義double類型需要多少字節(jié)一樣,MySQL對表每個列中的數(shù)據(jù)也會實(shí)行嚴(yán)格控制,這是數(shù)據(jù)驅(qū)動應(yīng)用程序成功的關(guān)鍵。
2、MySQL提供了一組可以賦給表中各個列的數(shù)據(jù)類型,每個類型都強(qiáng)制數(shù)據(jù)滿足為該數(shù)據(jù)類型預(yù)先確定的一組規(guī)則,例如大小、類型及格式。
3、總結(jié)數(shù)據(jù)類型。MySQL中的數(shù)據(jù)類型大的方面來分,可以分為:日期和時間、數(shù)值,以及字符串。
比如表名叫
test
建表
create?table?test?(content?varchar(20));
insert?into?test?values?('勝利');
查詢
select?*?from?test?where?instr('為勝利而來',content)0
引號里的相當(dāng)于你輸入的,content代表那個表里的字段,你看下結(jié)果吧