解决MYSQL不支持包含下划线查询

解决MYSQL不支持包含下划线查询

浏览次数:
作者: 墨鱼
信息来源: 本站原创
更新日期: 2024-05-24 09:17:24
文章简介

MySQL不支持直接查询包含下划线的字段名,需使用反引号`字段名`来避免冲突。同时,建议优化数据库设计,减少下划线使用,或创建别名简化查询。确保查询明确且高效,提升数据库性能。

  • 正文开始
  • 相关阅读
  • 推荐作品

墨鱼今天想把帝国CMS栏目副标题里的下划线改成横线,栏目实在太多了,就想着写个脚本处理吧,代码片段如下:

$query="select * from phome_enewsclass where bname like '%_%' order by classid desc";

发现始终无法匹配到正确的数据,查阅了一下百度相关MYSQL特殊符号数据查询说明,发现下划线的表达为like '%_%' 就是前面用斜杠转义下,果然就可以了!

完整PHP代码如下:放到/e/extend/文件访问,文件名随意。

<?php
define('EmpireCMSAdmin','1');
require("../class/connect.php");
require("../class/db_sql.php");
require("../class/functions.php");
require("../class/t_functions.php");
require("../data/dbcache/class.php");
require("../data/language/gb/pub/fun.php");
$link=db_connect();
$empire=new mysqlquery();
$editor=1;
$username='';
$query="select * from phome_enewsclass where bname like '%_%' order by classid desc";
$sql=$empire->query($query);
while($r=$empire->fetch($sql))
{
$new_bname=str_replace('_',' - ',$r[bname]);	
echo ''.$r[classid].'--'.$r[bname].'--'.$new_bname.'<br>';
$empire->query("update phome_enewsclass set bname='$new_bname' where classid='$r[classid]'");
}
db_close();
$empire=null;
?>


MySQL数据库MyISAM表类型优化设置参考 帝国CMS百万访问量真实操作后结论
« 上一篇 2024年04月12日

如本文对您有帮助,就请墨鱼抽根烟吧!