在一个数据表中存有许多不同的正则表达式,简单如下aid regex1 [a-f4-9]*
2 abcd(.*)
3 sd(f+)dac
4 (.+?)698d
给定一个字符串,如ecd87addc,应该如何写sql语句,才能在该表中查询与这个字符串匹配的正则表达式?或者有没有更好的解决方法?望高手不吝赐教!
2 abcd(.*)
3 sd(f+)dac
4 (.+?)698d
给定一个字符串,如ecd87addc,应该如何写sql语句,才能在该表中查询与这个字符串匹配的正则表达式?或者有没有更好的解决方法?望高手不吝赐教!
解决方案 »
- 请教mysql中变量character_set_connection的具体作用?
- GROUP_CONCAT 怎么用啊, 怎么老是出错
- 数据库备份与恢复的问题
- 在Extjs页面的文本框中按回车mysql出现乱码
- mysql 5.6的绿化让我崩溃了。系统错误 1067
- 诚心请教Explain问题...不理解ING...
- 我的mysql起不来,求指教
- 有没有count_max之类的方法
- MySql用函数或过程实现:AB 两个字母 排列组合 A,AB,B; ABC 三个字母 排列组合 A,B,C,AB,BC,AC,ABC
- 新人求助基础的MySQL问题
- 局域网内 MS SQL SERVER的连接问题~ 请大伙帮忙~~急,在线等~
- mysql异步备份的问题,MASTER_HOST可否指定多个?
你好,你的查询语句通不过,查询结果是显示出数据表中的所有记录
table1 CREATE TABLE `table1` (
`aidregex` char(20) NOT NULL,
PRIMARY KEY (`aidregex`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
------ ----------------------------------------
select * from table1 where '1cd87addc' REGEXP aidregex;
------ ----------------------------------------query result(1 records)
aidregex
1[a-f4-9]*
-- phpMyAdmin SQL Dump
-- version 2.8.0.1
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2007 年 06 月 13 日 11:12
-- 服务器版本: 4.1.11
-- PHP 版本: 4.4.7
--
-- 数据库: `test`
-- -- ----------------------------------------------------------
-- 表的结构 `t_table`
-- CREATE TABLE `t_table` (
`aid` int(11) NOT NULL auto_increment,
`test_regex` varchar(255) NOT NULL default '',
PRIMARY KEY (`aid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;--
-- 导出表中的数据 `t_table`
-- INSERT INTO `t_table` (`aid`, `test_regex`) VALUES (1, '[a-d]*'),
(2, '[3-9]*'),
(3, '[a-k]*'),
(4, '1[a-f4-9]*');
-- --------------------------------------------------------select * from t_table where '1cd87addc' REGEXP test_regex-- --------------------------------------------------------显示行 0 - 3 (4 总计, 查询花费 0.0006 秒)
SQL 查询:
SELECT *
FROM t_table
WHERE '1cd87addc' REGEXP test_regex
LIMIT 0 , 30结果如下:
[a-d]*
[3-9]*
[a-k]*
1[a-f4-9]*还是把所有的记录都查出来了?是不是数据库版本的问题啊?服务器上是这个版本啊,有没有其他的办法?