【发布时间】:2013-03-08 02:05:42
【问题描述】:
假设我有一个 Products 主表,还有一个保存 ProductIDs 列表的表。
Table name: Products
--------------------
ProductID, Title, Price
1, Title 1, 12.00
2, Title 2, 15.00
4, Title 4, 11.50
8, Title 8, 13.89
11, Title 11, 12.00
Table name: ListOfProducts
--------------------------
SomeID, ProductIDs
34, 4,8,1
35, 8,10,2
现在,您可以看到在ListOfProducts 表中,记录为SomeID=35,产品列表为8,10,2。无效的ProductID 10不在主表Products中,如何使用SQL快速找出无效的ProductID 10?
我的程序实际上是经典的ASP(旧版),数据库是MS SQL。我可以在 ASP 中循环遍历 ListOfProducts 中的记录,但是如何使用快速 SQL 查找任何无效的 ProductID?在这种情况下,当程序循环记录35时,脚本应该返回ProductID 10。
这看起来很简单。但我只是想不出一个好的解决方案。这可以做到吗? 请帮忙!
谢谢。
【问题讨论】:
-
阅读
MySQL FIND_IN_SET()。 -
我实际上使用的是 MS SQL。 MS SQL 中是否有类似的功能?无论如何,我是新手,一些代码示例会很棒。谢谢。
-
据我所知,MS-SQL 没有原生的拆分功能。
-
阅读这篇文章@Aaron Bertrand。这就是您所需要的:Splitting Strings : Now with less T-SQL 但只有在您规范化表格之前。我建议你不要拖延走这条路。
-
使用标准化数据库会容易很多:)
标签: php sql sql-server asp-classic