SELECT * FROM 表格 WHERE 标题字段 LIKE '%关键字%'
解决方案 »
- IIS的unlink()没反应
- Call to undefined function pg_connect() in C:\phptest\pg\index.php on line 22
- 从服务器上下来的程序,在本机上运行时出错?
- 在线等待回答:关于文件上传的带宽限制和断点续传
- 急求,我上传的文件居然不能拿到文件大小
- imagecreatefromjpeg这个函数是怎样用的阿?
- 欢迎大家进来看看,
- 难!如何识别非法用户通过url传递变量破坏系统?
- 支付宝提交参数的时候地址栏乱码。
- php根据输入开始时间 结束时间搜索订单数据
- 如何上PHP支持ms sql2000
- 怎么每次都存成*.xls[1]文件?
在表里面有个keywords字段,里面放的是关键字,每个关键字用";"分开,我如果要想精确的匹配关键字应该怎么写呢?
“SELECT * FROM 表格 WHERE 标题字段 LIKE '%关键字%'”是不行的,因为如果关键字为he,那么he和hello都会匹配从而返回记录集,但我只想返回he的记录集。
“SELECT * FROM 表格 WHERE 标题字段 LIKE ';%关键字%;'”
来查询
但是能不能单纯的使用sql语言来查询呢?
sql有没有什么正则表达式?
你输入关键字后,
“SELECT * FROM 表格 WHERE 关键字段 LIKE '%;关键字;%'”
但是有一点啊,如果他输入的时候用的既有全角的分号又有半角分号,那么上面那个like不就不一定那么好使了吗?
ListChangeDelims(你要更该的列表,"更改前的定界符","更改后的定界符")而是在读进去的时候把 <input type="text" name=“list”> </input>当你输入
key1;key2;key3
定义变量newlist=ListChangeDelims(list,";"",")
list表单变成以,为定界符
key1,key2,key3
然后用一个添加单引号函数定义变量new2list=QuotedValuelist(newlist)变成
‘key1’,‘key2’,‘key3’查的时候
select * from tb
where 标题字段 in (%new2list%)//coldfusion中为#new2list#而非%coldsuion%以下同相当于
select * from tb
where 标题字段 in (‘key1’,‘key2’,‘key3’) 方法二:比较好的,不同语言但是读进的函数不同(注意:所有函数为coldfusion下,所以只讲思想)
一般的网站是用空格号来定界的,
1输入文本
-- <input type="text" name=“list”> </input>
输入
key1 key2 key3
2把文本转化为列表
定义变量newlist=listlen(list,“ ’,‘”)//以空格为定界符,符函listlen():listlen(你要输入的文本or列表,“你要指定的定界符 ”)
则%newlist%为
key1 ’,‘key2 ’,‘key3
select * from tb
where 标题字段 in (‘%new2list%’)相当于
key1 ’,‘key2 ’,‘key3
select * from tb
where 标题字段 in (‘key1 ’,‘key2 ’,‘key3’)
-->newlist=listlen(list,‘ ’)//告诉电脑是以空格分隔,
-->long=thelongoflist(newlist) //判断列表的长度,long的值为3
-->遍历表单,并把他转化为数组 a[long-1]
-->然后分别查询a[0]....a[long-1]