| 热度: |
在php-mysqlweb开发时,有时候可能会需要用一个字段来表示 多种状态 比如说, 有一个table 叫做 phps 在state这个字段中 需要标记八种状态
例如 第一位表示: 注册过 php100.com;
第二位表示: 注册过 php8848.com;
第三位表示: 注册过 phpchina.com;
这样的话,如果要表示既注册过 php100.com 又注册过 php8848.com的, 可以用 字符串 110 来表示。
查询的时候如果数据量较少,可以直接使用 like 来操作
比如说,要查询没有注册过 php8848.com 的记录, 则 mysql 的sql文应该这样写:
select * from phps where states like ‘_0_’ ;
解释: ‘_’用在like语法中用来匹配任意一个字符;(’%'大家都知道是匹配任意长度的字符包括0个字符)。
同理要选择注册过 php8848.com的记录的话
select * from phps where states like ‘_1_’
对于少量数据来说的话,这样做应该就够了
但是如果数据量很大的时候,like的效率是很低下的,这时候可以使用全文检索来提高效率
全文检索的介绍 :http://www.php8848.com/wp/?p=1659
或者建立索引来提高查询效率
关于索引的介绍
MySQL语句优化的基本原则
MySQL如何使用索引