gpt4 book ai didi

mysql - 在 SQL 请求中,如何查找字符串最后部分(最后一个空格之后)包含数字的所有记录

转载 作者:行者123 更新时间:2023-11-29 17:58:34 27 4
gpt4 key购买 nike

如果有人可以提供帮助,谢谢。

在我的表中,有一个街道列和一个数字列。但对于某些记录,房屋号码位于街道列中街道名称的末尾,并以空格分隔。

根据 phpmyadmin 中的请求,如果该 block 包含任何数字,我想删除街道列的最后一个 block (最后一个空格之后),并将该 block 放入数字列

我在 phpmyadmin 中输入该请求只是为了查找这些记录。

SELECT `street`,`number` 
FROM `map`
WHERE `street` REGEXP '[\r\n\t\f\v ][0-9]+ ^[\r\n\t\f\v ]'

但是请求并不完整,因为它不仅仅需要最后一个 block ,而且它也没有删除子字符串并将其放入数字列中。

其工作原理示例:(街道栏、数字栏):

  • ('Rue van Malder 47B', '-1') 变为 ('Rue van Malder', '47B')
  • ('Rue des 2 Arbres 511B', '-1') 变为 ('Rue des 2 Arbres', '511B') -> 仅最后一个区 block 一位或多位数字从街道移动到数字列
  • ('place du 4 Août', '1') 保留 ('place du 4 Août', '1') 因为数字 '4' 不是在最后一个 block
  • ('751 2nd St', '-1') 保留 ('751 2nd St', '-1') 的原因与上述相同<

最佳答案

戈登·利诺夫,谢谢,您的回答已经是一个很好的答案,但我无法完全改变您的提议来更新我的字段。这个请求几乎可以用来填充数字列:

更新 map SET 数字 = substring_index(街道, ' ', -1)WHERE street IN (SELECT street REGEXP '[0-9]+$')

但是缺少一些东西,因为像这样的字段:

('Bd de la 2e armée Britannique', '-1') 变为 ('Bd de la 2e armée Britannique', 'Britannique')

并且该元素不应受到影响,因为数字不在字符串的最后一个 block 中

另外,我如何使用另一个 UPDATE 请求删除街道列中的最后一个 block ,以最终获得字段街道中的截断字符串:

('Rue van Malder 47B', '-1') 变为 ('Rue van Malder', '47B')

谢谢

关于mysql - 在 SQL 请求中,如何查找字符串最后部分(最后一个空格之后)包含数字的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48592653/

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