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'