2

我正在尝试从单个列中的多个条件从 sql 中提取数据,
我怎样才能让它工作?

SELECT RIGHT(productID, 2) AS 'a', SUBSTRING(productID,1,2) AS 'b', productID 
FROM products 
WHERE `group`='$one' 
  AND `a` LIKE 'AA%' 
  AND `b` LIKE '$two'

我正在尝试获取该行的前 2 个字母和同一行的最后 2 个字母,并检查是否 group=$one 但收到此错误

    Unknown column 'b' in 'where clause'
4

4 回答 4

1
SELECT RIGHT(productID, 2) AS 'a', SUBSTRING(productID,1,2) AS 'b', productID 
FROM products 
WHERE `group`='$one' 
GROUP BY productID
HAVING
  a = 'AA' 
  and b LIKE '$two'

不需要像它的两个位置%增加执行。

于 2012-04-17T02:29:46.587 回答
1

我创建了一个简单的表(StackOverFlow 测试表的 sotest)并向其中添加了一个名为 col1 的 VARCHAR 列。下面的代码对我有用。

SELECT RIGHT(col1, 2) AS a, SUBSTRING(col1,1,2) AS b, col1 as col FROM sotest  Having a like 'in%' and b like 'te%'

回报如下

|  a |  b  |     col      |
|'in'| 'te'| 'test_jermin'|
于 2012-04-17T03:14:19.680 回答
0
SELECT RIGHT(productID), 2)
                      ^---extra bracket

在指定要提取多少个字符之前终止函数。

于 2012-04-17T02:18:57.537 回答
0

那是因为你在RIGHT函数调用中的错误,你有一个放错位置的括号。将 SELECT 的语句更改为:

SELECT RIGHT(productID, 2) 
于 2012-04-17T02:19:48.550 回答