十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
mysql经常会用来查询特定字段,偶尔会需要展示特定字段中值的某部分,然后还有模糊查询的时候,如果需要匹配中间的某部分值,这个时候like就很尴尬,会多出一些不相干的记录
泾县网站建设公司创新互联建站,泾县网站设计制作,有大型网站制作公司丰富经验。已为泾县上千多家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的泾县做网站的公司定做!
一、获取特定的几位:
1、取url字段后三位字符
select SUBSTRING(url, -3) from link;
#这种只能针对固定长度,比说url共8个字符,可以下面这种写法
select RIGHT(`url`,length(`url`)-5) from link;
2、从左开始第3位取(包括第三位)
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、中间截取(从第1位开始取7位,如sDate字段值是 2013-06-07)
select SUBSTRING(sDate, 1,7) from forumdata;
查询结果就是 2013-06
二、查询特定的几位:
1、正常的模糊查询
select * from cm_order where ordersn like '%31%';
2、一个字段共有13位,查询倒数四五位为31的
select * from cm_order where SUBSTRING(ordersn, 9,2) = 31;
SELECT * from cm_order where RIGHT(`ordersn`,length(`ordersn`)-8) like '31%';
这种如果正常的模糊查询会出来很多不相干的数据,但是这种只能针对定长的模糊查询,效率方面比正常的模糊查询好很多。
一个表一个表,一个字段一个字段的去查,比如:select
*
from
表1
where
字段1=值
把表导入到sql文件里面,然后打开这个文件,用"查找"的功能找这个值。但是如果表和数据库很大的话,恐怕也不容易导出和打开这个sql文件。
1、一般查询语句:SELECT `lcontent` FROM `caiji_ym_liuyan`
查询数据:
2、有些时候需要查询某个字段的长度为多少时候才显示数据:
SQL语句:SELECT `lcontent` FROM `caiji_ym_liuyan` where
length(lcontent)=40
PS:在mysql中一个汉字等于3个字节,所以查询的时候需要转换一下
特别要注意的就时候对于字节的转换!
使用
ALTER TABLE 表名 AUTO_INCREMENT = 100;
下面是详细例子
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数据类型
1、好比C++中,定义int类型需要多少字节,定义double类型需要多少字节一样,MySQL对表每个列中的数据也会实行严格控制,这是数据驱动应用程序成功的关键。
2、MySQL提供了一组可以赋给表中各个列的数据类型,每个类型都强制数据满足为该数据类型预先确定的一组规则,例如大小、类型及格式。
3、总结数据类型。MySQL中的数据类型大的方面来分,可以分为:日期和时间、数值,以及字符串。
比如表名叫
test
建表
create table test (content varchar(20));
insert into test values ('胜利');
查询
select * from test where instr('为胜利而来',content)0
引号里的相当于你输入的,content代表那个表里的字段,你看下结果吧