2015-04-27 52 views
0

我需要列出某个表中的一些细节,其中两列以特定数字结尾,我必须使用RIGHT字符串函数。使用正确的字符串函数

使用MySQL工作台

到目前为止,我有:

Select dog_id, Cat_id, Place 
FROM EVENT_ENTRY 

在列dog_id和CAT_ID,存在数据,例如501,502,401,301,201,101,91等。

我需要使用正确的字符串函数列出dog_id和cat_id中以1结尾的所有数据。

任何帮助将不胜感激。干杯。

+0

哪些DBMS您使用的? Postgres的?甲骨文? –

+0

对不起,使用mySQL Workbench。 – Greg1994

+1

.... WHERE RIGHT(dog_id,1)='1'AND RIGHT(cat_id,1)='1'... – Mithrandir

回答

0
SELECT dog_id, Cat_id, Place FROM EVENT_ENTRY 
WHERE RIGHT(dog_id, LEN(dog_id)) = 1 AND RIGHT(cat_id, LEN(cat_id)) 
+0

右边第二个参数应该是1,而不是它得到的字符串的长度。 'RIGHT(dog_id,LEN(dog_id))'与'dog_id'相同 –

0

如果这些INT列(或对于该问题的任何其它整数数据类型),最好以测试是否modulu 2 = 1,像这样:WHERE Dog_Id % 2 = 1 AND Cat_Id % 2 = 1

如果这些字符串列(NCHAR, NVARCHAR等),你可以使用right功能,像这样:WHERE RIGHT(Dog_Id, 1) = '1' AND RIGHT(Cat_Id, 1) = '1'
或类似使用了通配符,像这样的:WHERE Dog_Id LIKE '%1' AND Cat_Id LIKE '%1'

+0

肯定是'WHERE Cat_Id%10 = 1',而不是'WHERE Cat_Id%2 = 0'?后者只是检索数量甚至的地方。 – GarethD

+0

哎呀,固定它... –

0
SELECT dog_id, Cat_id, Place 
FROM EVENT_ENTRY 
WHERE RIGHT(dog_id,1)='1' and RIGHT(cat_id,1)='1'; 
相关问题