gpt4 book ai didi

MySQL 选择字段包含一个字符串但不包含另一个字符串的位置

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

我必须为产品数据库构建一个搜索查询,该数据库包含两个名称类似的产品,其名称类似于以下示例:

“Widget 模拟器和虚拟研讨会……”

“...的小部件模拟器”

目前,如果有人搜索“Widget Simulator”,他们会在列表中获得两种类型的产品。我正在尝试构建一个类似于“Widget Simulator not:Virtual Seminar”的查询,它会忽略包含“Virtual Seminar”字样的产品

现有查询如下所示:

SELECT COUNT(*) AS `numrows` 
FROM (`content_product`)
JOIN `content` ON `content`.`content_id` = `content_product`.`content_id`
WHERE `content`.`version_status_id` = 28
AND `content`.`status` = 11
AND `name` LIKE '%widget%simulator%'

我已经尝试了以下方法,但它不起作用:

SELECT COUNT(*) AS `numrows` 
FROM (`content_product`)
JOIN `content` ON `content`.`content_id` = `content_product`.`content_id`
WHERE `content`.`version_status_id` = 28
AND `content`.`status` = 11
AND `name` LIKE '%widget%simulator%'
AND `name` NOT LIKE '%virtual%seminar%'

这行不通。我想我明白为什么它不起作用,但我无法在这里或其他地方找到任何告诉我如何做到这一点的东西。

总而言之,我想显示名称中包含“Widget Simulator”的所有产品,同时省略那些还包含“Virtual Seminar”的产品。

感谢任何帮助或建议。

最佳答案

只有个人意见,我认为你应该使用子查询来使用它,首先删除所有包含 Virtual Seminar 的产品,然后选择其余包含 Widget Simulator 的产品,如下所示:

SELECT COUNT(*) AS `numrows` 
FROM (`content_product`)
JOIN `content` ON `content`.`content_id` = `content_product`.`content_id`
WHERE `content`.`version_status_id` = 28
AND `content`.`status` = 11
AND `name` LIKE '%widget%simulator%'
AND `content_product.id` NOT IN (
SELECT `content_product.id`
FROM `content_product`
WHERE `name` LIKE '%virtual%seminar%'
)

关于MySQL 选择字段包含一个字符串但不包含另一个字符串的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13695287/

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