gpt4 book ai didi

sql - rails SQL : How to search on a column in a table ignoring all special characters

转载 作者:行者123 更新时间:2023-11-29 13:13:03 25 4
gpt4 key购买 nike

我正在 MyTable 中搜索匹配值。

name to search for -> This-is-a (test/with/time)
The name from DB table -> "this-is-a-test-with/time"

如果我可以获得列值和搜索值以匹配类似这样的内容 -> "thisisatestwithtime" 忽略所有特殊字符和空格。

value = This-is-a (test/with/time)
MyTable.where("upper(name) = upper(?)",value.to_s.scan(/[0-9a-z]/i).join("")).first

这会将值转换为所有特殊字符都被删除的形式,但我如何对表中的值运行相同的形式?

最佳答案

您可以使用正则表达式搜索。

select * from "table" where "name" ~ 'this' and name ~ 'is' and name ~ 'a' 
and name ~ 'test' and name ~ 'with' and name ~ 'time';

如果您只想搜索整个单词(例如查找 -a- 而不是 cat)

name ~ '\ma\M'

不区分大小写,使用

name ~* 'a'

https://www.postgresql.org/docs/9.6/static/functions-matching.html#FUNCTIONS-POSIX-REGEXP

您还可以使用replace 来匹配整个值

select * from table where regex_replace(name, '\W', '') = :name

Table.where("regex_replace(name, '\W', '') = :name", name: 'thisisatestwithtime')

关于sql - rails SQL : How to search on a column in a table ignoring all special characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52447821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com