gpt4 book ai didi

MySQL LIKE 和 NOT LIKE 搜索同一列

转载 作者:行者123 更新时间:2023-11-29 14:34:07 28 4
gpt4 key购买 nike

嗨,我正在为一个我没有设计的数据库编写 MySQL 请求,目前无法真正更改,我有一个问题,我还没有测试过这个,所以它可能按设计工作,但我没有当然。

所以我正在搜索的表只有三列 id、标题和描述,但描述列实际上是以标准化方式存储的其他信息的列表(这是针对音乐元数据的,所以它看起来像这样):

id |标题 |描述
1 |通往天堂的阶梯 |艺术家=led_zeppelin、流派=摇滚、专辑=led_zeppelin_iv

我想要做的是编写查询,该查询将选择艺术家包含字符串 zeppelin 的所有歌曲

我最初想到的是

“从表中选择 *,其中描述如 %artist=%zeppelin%”

虽然我相信如果名称出现在描述中应该可行,但我认为问题出在我想找到所有包含摇滚的艺术家的情况下,它看起来像这样

“从表中选择*,其中描述如%artist=%rock%”

我的第一个问题是这会选择该行,因为摇滚在艺术家=之后的行中,正确吗?

我的第二个问题是这可以解决问题吗?

“从表中选择*,其中描述类似于%artist=%rock%,并且其中描述不类似于%artist=%,%rock%”

我的想法是,如果我省略在 Artist= 和比较标签之间有 , (分隔符)的字符串,它就不会选择上面的行。我的潜在问题是,如果分隔符位于艺术家姓名中,则会失败,但我应该能够通过选择不在任何字段值中的分隔符并强制保留此属性来解决此问题。

对于任何格式问题也表示歉意,这是我第一次尝试编写问题。

谢谢,吐温249

最佳答案

您有使用正则表达式的经验吗?如果是,您可以在查询中使用它们来处理类似的情况。请参阅此处的一些示例:http://dev.mysql.com/doc/refman/5.0/en/regexp.html

或者,您可以使用此处定义的“split”函数:http://blog.fedecarg.com/2009/02/22/mysql-split-string-function/

关于MySQL LIKE 和 NOT LIKE 搜索同一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9417757/

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