【发布时间】:2019-10-13 11:04:25
【问题描述】:
我有一个表,其中一些值存储在关键字列中,但是关键字列中的值包含额外的空间,而检索数据查询由于这个额外的空间而没有获取所有记录,我尝试在 mysql 中使用 trim() 但它没有不适合我
预期输出:mysql 查询应该通过避免 where 条件后面的额外空间来获取所有记录。
表:
id keyword
1 some text for product //here single space after 'some'
2 some text for product // here two space after 'some'
查询:
SELECT * FROM `table` where trim(keyword)='some text for product'
执行上述查询后,由于列值中有多余的空格,将只返回单个记录而不是所有记录。
【问题讨论】:
-
trim 只会删除前导和尾随字符,默认为空格。我不知道你对 trim(keyword) = "some text for product' a keyword nother 可以等于 a text with some words。
-
实际上我想从关键字列中获取所有值,但它包含额外的空间,因此查询不起作用
-
更新您的问题并添加适当的数据样本..和预期结果
-
搜索 sql 替换空格,例如 stackoverflow.com/questions/2455750/… ,即使 sql server 很容易适应 mysql ..
-
您的数据包含双空格是否有(好的)理由?否则,请确保您的数据以正确的方式存储(例如,在存储它们之前删除双空格)。存储无效/无用/次优数据是一个令人头疼的原因。您可能还想研究全文搜索,它可以让您在随机文本(例如空格、点、词序等)中搜索随机文本时宽大一些,并且可能(或可能不)也有效。
标签: mysql