MySql确定字符串列表的所有元素都存在于其他字符串列表中
我有这些桌子:MySql确定字符串列表的所有元素都存在于其他字符串列表中,mysql,stored-procedures,Mysql,Stored Procedures,我有这些桌子: category_table +--------+-----------------+---------+ | id | title | parent_id | +--------+---------------+-----------+ | 1 | f | null | | 2 | h | null | | 3 | j | 1
category_table
+--------+-----------------+---------+
| id | title | parent_id |
+--------+---------------+-----------+
| 1 | f | null |
| 2 | h | null |
| 3 | j | 1 |
| 4 | y | 3 |
| 5 | d | 3 |
+--------+-----------------+---------+
post_table
+--------+---------------+-------------+
| id | title | categoryies |
+--------+---------------+-------------+
| 1 | title1 | 1 |
| 2 | title2 | 1,2 |
| 3 | title3 | 4,5 |
| 4 | title4 | 4 |
| 5 | title5 | 3 |
+--------+---------------+-------------+
以及一个查找所有具有'3,5,2'
类别的帖子的过程
程序将如何在类似于以下内容的其他字符串列表中搜索字符串列表:
Create Procedure post_select(IN category_ids Varchar(200))
Begin
Select *
From post
Where
// all category_ids exists in post categories column
// such as FIND_IN_SET('1', '1,2,3') but first parameter
// should be list string for example:
// FIND_IN_SET('2,3,4','2,4,5,6,7,8')
End;
你应该考虑创建一个PASSyType表,在其中存储PasyGID和CyryYyID。
@ GunaseelaN,谁在乎?在模式修复之前,“尝试”任何东西都没有意义!停止参见规范化。这个问题需要一些澄清(以及一些排版修正)。是否希望过程接收一个带有逗号分隔字符串的参数,该字符串被解释为一个值列表,其中任何值都会使该行显示在结果中?此外,演示所需的结果以及交叉检查我们是否理解正确也很有帮助。我需要逗号分隔的搜索,但没有任何搜索其他列表中列表的功能…@SLDev如果需要,请不要麻烦使用RDBMS。@SLDev这一点很简单。要么规范化您的模式,要么不使用关系数据库管理系统;使用逗号分隔的列表没有错,使用关系数据库也没有错;只是不要试图同时使用两者。