gpt4 book ai didi

mysql - SQL LIKE 仅在表的一行上搜索错误

转载 作者:行者123 更新时间:2023-11-29 20:27:31 24 4
gpt4 key购买 nike

这很奇怪,我以前从未发生过

我在 Rails 控制台上,因为我的搜索表单不起作用,由于某种原因,当我使用名为“nombre”的行进行搜索时,搜索不起作用,这是输出数据:

首先,我将向您展示我的表格数据:

  2.3.0 :035 > Item.all
Item Load (0.6ms) SELECT "items".* FROM "items"
=> #<ActiveRecord::Relation [#<Item id: 1, nombre: "Melamina Blanca", espesor: 18, material: "MDF", quantity: 14, created_at: "2016-08-04 00:56:13", updated_at: "2016-08-30 00:05:01">, #<Item id: 2, nombre: "Melamina Gris Grafito", espesor: 15, material: "Aglo", quantity: 9, created_at: "2016-08-04 00:56:13", updated_at: "2016-08-30 00:05:01">, #<Item id: 3, nombre: "Melamina Azul", espesor: 18, material: "MDF", quantity: 26, created_at: "2016-08-04 00:56:13", updated_at: "2016-08-30 00:05:01">, #<Item id: 4, nombre: "Melamina Rojs", espesor: 18, material: "MDF", quantity: 5, created_at: "2016-08-04 00:56:13", updated_at: "2016-08-30 00:05:01">]>
2.3.0 :036 >

如您所见,第一项的名称(名称)是“Melamina Blanca”

如果我进行搜索,我会得到以下结果:

  item = Item.where("nombre LIKE ?", "Blanca")
Item Load (0.8ms) SELECT "items".* FROM "items" WHERE (nombre LIKE 'Blanca')
=> #<ActiveRecord::Relation []>

所以我尝试按另一行搜索,在本例中称为“ Material ”

  item = Item.where("material LIKE ?", "Aglo")
Item Load (0.5ms) SELECT "items".* FROM "items" WHERE (material LIKE 'Aglo')
=> #<ActiveRecord::Relation [#<Item id: 2, nombre: "Melamina Gris Grafito", espesor: 15, material: "Aglo", quantity: 9, created_at: "2016-08-04 00:56:13", updated_at: "2016-08-30 00:05:01">]>

我得到了正确的搜索,我尝试了其他行,除了我需要的“nombre”之外,所有这些都有效

有什么想法吗?

最佳答案

我认为问题在于您正在寻找完全匹配的内容。要搜索模式字符串,您必须使用定义通配符的%

尝试

Item.where("nombre LIKE ?", "%Blanca%")

这将查找名称中包含“Blanca”的记录。

如果您想搜索以“Blanca”开头的名称,请使用

Item.where("nombre LIKE ?", "Blanca%")

或者对于以“Blanca”结尾的名称,请使用

Item.where("nombre LIKE ?", "%Blanca")

注意:您对material“Aglo”的搜索成功,因为记录中的material字段包含确切的字符串“Aglo”。

希望这有帮助!

关于mysql - SQL LIKE 仅在表的一行上搜索错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39218333/

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