首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql不区分大小写的字段名

问mysql不区分大小写的字段名
EN

Stack Overflow用户
提问于 2016-07-11 01:47:50
回答 2查看 552关注 0票数 0

我知道“表”名称是区分大小写的(取决于操作系统、linux或windows),但是我发现字段名称也区分大小写。我读过一些地方说他们不是。我找到了很多关于表名的信息,但关于FIELDNAMES的信息不多。

然而,这个例子给出了一个错误抱怨。

fieldname = "Name“,如果我执行以下操作-它会出错

编辑:忘记:正在寻找运行时修复程序,因为这不是我的数据库。

代码语言:javascript
复制
SELECT * FROM some_table WHERE name = 'something'

除非我将'name'更改为'Name',否则会得到一个错误。2个问题如果这是我的一个错误,我做错了什么?如果没有,是否设置了一个标志来控制这一点。似乎当开发人员摆弄数据库时,有时他们会因为w/e的原因而改变字段,最终以camelCase结束。

似乎我不得不编写冗余的代码来适应大小写敏感的搜索。(这就是为什么我认为我可能错了)

EN

回答 2

Stack Overflow用户

发布于 2016-07-11 02:28:42

这是基于你的评论,PHP是区分大小写的,带有echo $result‘’Title‘;

下面是一个PHP函数,它允许您在PHP中对关联数组使用不区分大小写的索引。

代码语言:javascript
复制
$test = array("Name"=>"Russell");
echo value($test,"name");

function value(&$row,$field) {
    // Get the value of a field.
    foreach($row as $key=>$value) {
        if (strcasecmp($key,$field)==0) {
            return $value;
        }   
    }
    throw new Exception("Field $field wasn`t found.");
}
票数 0
EN

Stack Overflow用户

发布于 2016-07-11 02:22:38

我认为您机器上mysql的lower_case_table_names系统变量设置为0,表示区分大小写。

如果设置为0,则按指定的方式存储表名,并且比较区分大小写。如果设置为1,表名将以小写形式存储在磁盘上,并且比较不区分大小写。如果设置为2,表名将以给定的形式存储,但以小写形式进行比较。此选项也适用于数据库名称和表别名。

请找到下面的链接以供参考。http://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

我希望这能解决你的问题

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38294799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档