我试图借助where子句获得一些值,where子句的值是来自同一个表中记录的值。
例如, select requestedusers from users where username = 'xyz'
当我运行上面的查询时,它会给出如下结果 ,mno,tuv
我在另一个查询中使用了这个结果,比如 select data from users where username in (,mno,tuv)
我正在得到最终的结果。
但是我需要在一个查询中获得最终结果,比如 select data from users where username in (select requestedusers from users where username = 'xyz');
.
当我尝试这样运行查询时,它会返回空集。
1条答案
按热度按时间jbose2ul1#
修复数据结构!不要将逗号分隔的列表存储在单个列中。sql有非常好的列表数据结构。它被称为表,而不是字符串。
你想要一个连接表;也就是说,每个用户和每个请求的用户都有一行的表。
也就是说,有时我们会被其他人的糟糕的设计决策所困扰。在这种情况下,您可以使用
find_in_set()
:表现会很差。除了修复数据模型之外,几乎没有其他方法可以修复性能。