首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为MySQL和Postgres编写不区分大小写的查询?

如何为MySQL和Postgres编写不区分大小写的查询?
EN

Stack Overflow用户
提问于 2008-10-15 01:10:29
回答 10查看 52.5K关注 0票数 64

我在本地运行MySQL数据库进行开发,但部署到使用Postgres的Heroku。Heroku处理几乎所有的事情,但是我的不区分大小写的Like语句变得区分大小写。我可以使用iLike语句,但是我的本地MySQL数据库无法处理这一点。

编写与MySQL和Postgres兼容的不区分大小写的查询的最佳方法是什么?或者,我是否需要根据我的应用程序与之对话的数据库来编写单独的Like和iLike语句?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-10-15 01:16:19

代码语言:javascript
复制
select * from foo where upper(bar) = upper(?);

如果在调用方中将参数设置为大写,则可以避免第二次函数调用。

票数 58
EN

Stack Overflow用户

发布于 2009-10-11 14:47:07

这个故事的寓意是:不要在开发和生产中使用不同的软件堆栈。绝不可能。

你只会得到你不能在dev中重现的bug;你的测试将一文不值。不要这样做。

使用不同的数据库引擎是不可能的--将会有更多的情况下,它的行为不同于像这样(另外,您是否检查了数据库使用的排序规则?它们在每种情况下都是相同的吗?如果不是这样,您可以忘记在varchar列上使用ORDER BY )

票数 74
EN

Stack Overflow用户

发布于 2012-04-14 07:15:01

使用Arel:

代码语言:javascript
复制
Author.where(Author.arel_table[:name].matches("%foo%"))

matches将对Postgres使用ILIKE运算符,对其他所有内容使用LIKE运算符。

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

https://stackoverflow.com/questions/203399

复制
相关文章

相似问题

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