三种方法:
一像你这种aa前后都是特殊字符,而且最外侧是双引号的可以直接写变量名
$result = mysql_query("SELECT FROM table1 WHERE name LIKE '%$var%'");二也可以使用点连接符对字符串进行连接:
$result = mysql_query("SELECT FROM table1 WHERE name LIKE '%" $var "%'");三可以使用{}代码域来分隔变量名,这种用法更适用于变量后有数字、字母、下划线的情况,它可以明确地将变量与字符串区分开来:
$result = mysql_query("SELECT FROM table1 WHERE name LIKE '%{$var}%'");Access查询中使用的默认语法是“Microsoft Jet SQL”,而ADO中使用的SQL语法是“ANSI SQL”。
这两种语法存在轻微的差别(中间还包含某些特殊函数和功能)并非完全兼容。其中通配符就不一样。对于多个字符,前者是 而后者是% ; 对于单个字符,前者是 而后者是_。
匹配字符 Microsoft Jet SQL ANSI SQL
任何单个字符 _(下划线)
零个或多个字符 %
解决楼主问题的办法是将SQL like运算符后面的 替换为 %
pfilename like '%三个%'
这样就可以查到数据了。
当然我们也可以将ACCESS数据库查询的语法设置为兼容ANSI SQL(在ACCESS选项那里设置),但是这样做的话,编写SQL语句就要遵循ANSI SQL语法规则了。对于之前已经使用过的ACCESS数据库不建议这样做,因为很可能会导致原有编写的SQL查询失效,进而造成诸多不便。
答案是A。
like在SQL中被叫做模糊查询,也就是关键字查找功能。通配符就是百分号。例如like'%百度'实现的是查找以百度两个字为结尾的数据。like '百度%'是查找以百度开头的数据, like '%百度%'是包含百度两个字的数据条目
你需要的是神马结果啊,那些出现,那些过滤
如果FKid是是等于的,不能用字符串比较啊,直接 CASE(Fkid as int) = (select id) 多好
我明白你的意思了,你Fkid 保存的是'1,2,3' 这样的是吧,首先这是一个很不合理的保存方式,效率低。如果想用这种,效率比较高的方式就是,在Fkid的首尾都加上逗号',',这样,like的时候,匹配值使用',id,',这样就唯一匹配了
ps:下次不要用评论,用追问
你的这个语句是模糊查询,查询所有带有“思”的name,有关like的用法给你个网址说的很好理解,举例说明的更能让人理解并记住。建议你看一下这个网址like的用法。。>
是的,跟具体的数据库有关。
一般通用的数据库的like使用 % ,但是ACCESS是不一样的,具体使用是这样:
select from 地名索引 where [name] like '天宁%%';
select from 地名索引 where [name] like '%%天宁%%';
最好参考一下数据库的说明文档。
以上就是关于php+mysql+like+通配符+变量全部的内容,包括:php+mysql+like+通配符+变量、access sql like 通配符、,在查询分析器中使用T-SQL 语句查询数据,使用Like 关键字来匹配单个字符,那么其通配符是( ). A,% B:* C:#等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)