我需要从下表中选择一行,但问题是值$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)
| 归档时间: |
|
| 查看次数: |
17413 次 |
| 最近记录: |