MySQL select语句访问列中十六进制值的一部分
我有一张这样的桌子:MySQL select语句访问列中十六进制值的一部分,mysql,select,Mysql,Select,我有一张这样的桌子: Type Col1 0 ff 1 9f 3 92 Col1型 0 ff 19楼 3 92 我只想访问col1值的一部分 i、 e.我想用Col1=92这样的值查询表,其中所有行都返回 如果我使用Col1=94进行查询,则第0行和第1行将返回,如果我使用Col1=12进行查询,则仅第0行将返回。显然,需要对上述赋值语句执行一些操作才能使其工作 比如说: 从表1中选择*,其中Col1(1
Type Col1
0 ff
1 9f
3 92
Col1型
0 ff
19楼
3 92
我只想访问col1值的一部分
i、 e.我想用Col1=92
这样的值查询表,其中所有行都返回
如果我使用Col1=94
进行查询,则第0行和第1行将返回,如果我使用Col1=12
进行查询,则仅第0行将返回。显然,需要对上述赋值语句执行一些操作才能使其工作
比如说:
从表1中选择*,其中Col1(1)=9代码>除非我知道sintax不工作
希望这是有意义的假设col1是一个文本字段,您可以执行以下操作:
SELECT * FROM table1 WHERE col1 LIKE '9%';
返回col1以9开头的任何行
有关“相似”模式的更多信息,请参见。您至少有3个选项
首先是
where `col1` like '9%'
第二
where substr(`col1`,1,1) = "9"
第三
或者,您可以使用substr(字符串、开始、长度),因此:
SELECT * FROM table1 WHERE substr(col1,1,1)='9'
为什么92只返回第0、1、3、94行和第1行,而第12行只返回第0行?我希望f
充当位掩码,这样所有和'd的值都将返回该值,但是我发现很难获得该功能,而且它并不完全是我想要的。你可能需要类似的东西吗<代码>其中HEX(Col1)&HEX('12')=HEX('12')
?如果在第3行执行此操作,结果将是true
,我不希望这样,92&12=12
谢谢!现在,如果我想反转它并像这样做:像“%2”这样的“col1”在哪里
它会像那样工作吗?是的,但可能会因为mysql无法使用索引而变慢,示例2可能会更好。但是像%2一样,我在过去编辑了很多答案-在本例中,我添加了一个新答案,因为它是一个不同的答案。这方面有指导方针吗?我在FAQ中找不到任何内容
SELECT * FROM table1 WHERE substr(col1,1,1)='9'