我需要从下表中选择一行,但问题是值$row['city']
是文本表示的值,我需要它的数字(多伦多= 2).(与INSERT INTO时相同,我们使用值编号而不是文本)
请求表结构:
req_id INT
uname VARCHAR(30)
city ENUM('New York', 'Toronto', 'Las Vegas')
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 19
您只需city
要从精细手册强制进入数字上下文:
如果
ENUM
在数值上下文中检索值,则返回列值的索引.例如,您可以从ENUM
列中检索数值,如下所示:Run Code Online (Sandbox Code Playgroud)mysql> SELECT enum_col+0 FROM tbl_name;
所以你想要这样的事情:
select req_id, city+0
from your_table
where city = 'Toronto'
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您可以enum
使用字符串或整数表示插入.
小智 7
您可以使用该CAST
功能。该文档没有提及这个特定的用例,但它按预期工作。我更喜欢它,因为它看起来优雅而清晰:
SELECT CAST(city AS UNSIGNED) FROM your_table;
Run Code Online (Sandbox Code Playgroud)