我有一个包含一些电子邮件字段的表。有些电子邮件记录用大写字母表示,有些用骆驼表示。现在我必须将所有电子邮件都用大写字母转换成小写字母。我可以通过获取每条记录然后检查任何大写字母,然后在发现大写字母时将其转换为小写来使用PHP脚本来完成此操作。在mysql查询中检查大写字母
有什么办法可以在Mysql与我们只能得到那些包含大写字母的记录,而不是所有?这样我就可以通过执行每一条记录而省掉。 Iam在Mysql中寻找一种方式,我们可以在查询本身中检查记录中的大写字母。有什么建议么??
我有一个包含一些电子邮件字段的表。有些电子邮件记录用大写字母表示,有些用骆驼表示。现在我必须将所有电子邮件都用大写字母转换成小写字母。我可以通过获取每条记录然后检查任何大写字母,然后在发现大写字母时将其转换为小写来使用PHP脚本来完成此操作。在mysql查询中检查大写字母
有什么办法可以在Mysql与我们只能得到那些包含大写字母的记录,而不是所有?这样我就可以通过执行每一条记录而省掉。 Iam在Mysql中寻找一种方式,我们可以在查询本身中检查记录中的大写字母。有什么建议么??
将排序规则更改为区分大小写排序规则。
但是真的,这个查询需要多长时间?
update `table` set email = lower(email)
编辑:只更新不仅含有较低的情况下,电子邮件记录:
update
`table`
set
email = lower(email)
where
email <> lower(email)
collate
latin1_general_cs
您可以先选择这些测试:
select
*
from
`table`
where
email <> lower(email)
collate
latin1_general_cs
limit
10
我不想触摸那些没有任何大写字母的电子邮件ID,因为此表中有大量数据,遍历所有不是一个好的解决方案 – developer
回答更新。 – CodeCaster
我到现在为止所缺少的是“collate latin1_general_cs”....这个查询中具体做了什么......如果你能解释这个,这将会很棒:) – developer
你是什么意思的“电子邮件记录” ?如果您正在讨论ADDR_SPEC,那么您可能需要考虑的是,虽然域不区分大小写,但邮箱名称*有时是*。 – symcbean