我有一个复杂的问题,我不太确定如何解决。
我正在从同一个表中定义两个匹配某些条件的值子集。
声明1:
SELECT value FROM Values WHERE category = a
声明2:
SELECT value FROM Values WHERE category = b
但是我还有一个额外的约束,即语句 1 中的任何值与语句 2 的任何值连接都应该产生一个长度应该等于或小于给定最大字符串长度的字符串。
我可以写什么样的查询来做到这一点?在此先感谢您的帮助。
洛泰尔
编辑:
我的数据看起来像:
+---+---------+------------+----------+
|id | routeId |category | value |
+---+---------+------------+----------+
| 1 | 1 |origin | Paris |
| 2 | 1 |destination | New York |
| 3 | 2 |origin | Paris |
| 4 | 2 |destination | Berlin |
+------+--------------+---------------+
我想收到 origin.destination 小于 n 个字符的路线的 routeId 列表。
现在我更仔细地研究了这个问题,我发现我最初的方法是不正确的,因为我写道,第一个 select 语句中的任何值与第二个 select 语句中的任何值连接的长度都应该低于某个字符限制。事实上,问题更复杂,因为原始值和目标值的 routeId 对于连接应该在最大长度以下的值对应该是相同的。