如何使SQL中的列不区分大小写?

时间:2017-07-08 18:48:18

标签: mysql mediawiki

问题是维基媒体中的页面链接过程,我创建了一个链接[[像这样]]或[[Like This]]创建了两个不同的链接。第三个单独的链接是[[LIKE this]] ...我希望使数据库不区分大小写,以便它们都链接到同一页面。以下是一些建议的解决方案:我正在尝试解决方案#6。 https://meta.wikimedia.org/wiki/Case_sensitivity_of_page_names

http://archive.is/Dm5YI#selection-376.1-393.32

不区分大小写意味着:

https://iglooo.000webhostapp.com/index.php?title=Computer_science

将返回与:

相同的结果

https://iglooo.000webhostapp.com/index.php?title=Computer_Science

而不是像目前那样的单独页面。

'collat​​e latin1_bin'实际上强制mySQL列区分大小写。

以下是我所做的,alter table需要密钥丢弃:

Git for Windows

有一个名为“page”的表需要不区分大小写。上述尝试失败了。请帮忙。

我正在使用最新的mediawiki distrobution。

2 个答案:

答案 0 :(得分:0)

如果您不清理进入系统的数据,则无法以不区分大小写的方式存储它。话虽这么说,您可以使用函数查询数据。

select
    foo.bar
from
    foo
where
    upper(foo.bar) = upper(MY_PARAMETER)

请注意,右侧upper() cluase可以在您的应用程序逻辑中得到更好的处理,但是完全可以在这里完成。

答案 1 :(得分:0)

避免使用alter table和更改格式的列,您只需使用collat​​e

即可

在你的查询中

col_name = 'Computer_science' COLLATE latin1_general_ci

通过这种方式,select列被用作案例的极值(通过传递)你在表定义中的bin collat​​ion