mysql怎么分别按字段查出数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql怎么分别按字段查出数据相关的知识,希望对你有一定的参考价值。
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%';
这种如果正常的模糊查询会出来很多不相干的数据,但是这种只能针对定长的模糊查询,效率方面比正常的模糊查询好很多。 参考技术A 数据库遍历,找到你要查询的字段,然后得到这一条数据, 参考技术B select 你想显示的字段 from 表名 where 有条件加条件 参考技术C
想清楚在问,不知道你在表达什么,想知道什么
MYSQL如何查询表中字段类型TYPE=date的字段信息?
例如,查询表结构的语句为:DESC tablename
在查询的结果中发现该表中有几个字段类型TYPE=date,
那么,此时如何用语句查询出那些TYPE=date的字段信息?
并不是想查出具体值。
前提是:我只知道这个表名=“tablename”,我想查出这个表中有几个字段是date类型的。
然后拿着这些查出的date类型的字段名称再去表中查出对应的所有记录。
以下是例子.
mysql_fetch_field() 可以用来从某个查询结果中取得字段的信息。如果没有指定字段偏移量,则下一个尚未被 mysql_fetch_field() 取得的字段被提取。
对象的属性为:
name - 列名
table - 该列所在的表名
max_length - 该列最大长度
not_null - 1,如果该列不能为 NULL
primary_key - 1,如果该列是 primary key
unique_key - 1,如果该列是 unique key
multiple_key - 1,如果该列是 non-unique key
numeric - 1,如果该列是 numeric
blob - 1,如果该列是 BLOB
type - 该列的类型
unsigned - 1,如果该列是无符号数
zerofill - 1,如果该列是 zero-filled
=========
<?php
mysql_connect('localhost:3306', $user, $password)
or die("Could not connect: " . mysql_error());
mysql_select_db("database");
$result = mysql_query("select * from table")
or die("Query failed: " . mysql_error());
/* get column metadata */
$i = 0;
while ($i < mysql_num_fields($result))
echo "Information for column $i:<br />\n";
$meta = mysql_fetch_field($result);
if (!$meta)
echo "No information available<br />\n";
echo "<pre>
blob: $meta->blob
max_length: $meta->max_length
multiple_key: $meta->multiple_key
name: $meta->name
not_null: $meta->not_null
numeric: $meta->numeric
primary_key: $meta->primary_key
table: $meta->table
type: $meta->type
unique_key: $meta->unique_key
unsigned: $meta->unsigned
zerofill: $meta->zerofill
</pre>";
$i++;
mysql_free_result($result);
?> 参考技术A SELECT `datefield` FROM `tablename` WHERE 1
SELECT * FROM `tablename` WHERE `datefield`='2011-03-01'
以上是关于mysql怎么分别按字段查出数据的主要内容,如果未能解决你的问题,请参考以下文章
如何用sql的日期函数,分别查出1月~12月每个月的销售金额?