2011-08-23 31 views
1

我有一个长度为150个字符的字段名称授权。在查询中使用变量

我想查询以检查特定数字的授权。

SELECT e.staffid, COUNT(e.staffid) FROM enrll e INNER JOIN staff s on e.staffid=s.staffid 
         WHERE s.auth = '1' and NOT EXISTS (SELECT staffid FROM shdl h where s.staffid=h.staffid and h.shdldt='$unixdt') 
         GROUP BY e.staffid ORDER BY COUNT(e.staffid) DESC"; 

虽然我已经使用了"1"测试用的,但现在我想在喜欢特定手指检查AUTH。 因为我用150位数变量。我需要检查第150位,如果在最后一个位置是1,它将获取记录。

回答

1
... WHERE SUBSTRING(s.auth,150,1) = '1' ... 

SUBSTRING(str, pos, len)可用于这一点,但所有的s.auth指数也没用呢。

+0

子串是不是比我如何与上面的代码中使用SQL函数。你能否重写代码? – Aditii

+0

Substring是一个MySQL函数,只需将我的答案中的代码替换为您的'WHERE s.auth ='1''。 – Jacob

+0

好..如果我使用'substr(s.auth,-1)='1''这样的负值,会发生什么? – Aditii

1

可能是你可以尝试

substr(s.auth,-1) = '1' 
+0

你可以通过查询select substr('Testing', - 1)来检查工作情况。结果是g。 –