MYSQL:选择*中的位置(替换(…)

MYSQL:选择*中的位置(替换(…),mysql,Mysql,我有以下要求: SELECT value from catalog_category_entity_varchar WHERE entity_id IN ('1','2','10','47') 这个请求给出了结果 value ok ok ok ok 以下请求 SELECT value from catalog_category_entity_varchar WHERE entity_id IN (REPLACE("'1','2','10','47'", 'dont', 'ca

我有以下要求:

    SELECT value from catalog_category_entity_varchar WHERE entity_id IN
('1','2','10','47')
这个请求给出了结果

value
ok
ok
ok
ok
以下请求

    SELECT value from catalog_category_entity_varchar WHERE entity_id IN
(REPLACE("'1','2','10','47'", 'dont', 'care'))
这个请求没有给出结果,因为我认为它的generate
“'1'、'2'、'10'、'47'
entity_id
是一个int而不是字符串

因此,我尝试了以下请求,但仍然没有结果

    SELECT value from catalog_category_entity_varchar WHERE entity_id IN
(TRIM(BOTH '"' FROM REPLACE("'1','2','10','47'", 'dont', 'care')))
我的问题是如何生成像第一个请求一样的替换请求? 谢谢大家抽出时间

编辑:数据示例:

CREATE TABLE catalog_category_entity_varchar (entity_id int(10), value varchar(255));
INSERT INTO catalog_category_entity_varchar VALUES (1,'ok'),(2,'ok'),(10,'ok'),(47,'ok');
我试图达到的最初要求是给出结果

    SELECT value from catalog_category_entity_varchar WHERE entity_id
IN ( CONCAT('"', REPLACE('1/2/10/47', '/', '","'), '"') );

您可以使用以下功能执行此操作:

请参阅。
结果:


您可以使用以下功能执行此操作:

请参阅。
结果:


发布示例数据和预期结果。您尚未说明要实现的目标,从非工作代码中也看不出这一点。@forpas我简化了初始请求,但想法是在REPLACE(…)中实现WHERE entity_id,而entity_id是int。但是REPLACE(…)的内容是字符串,因此它不起作用。因为它是生成('1','2','10','47'),而不是('1','2','10','47')。最初的请求是从目录(category)实体(varchar)中选择值,其中实体(id位于"CONCAT",REPLACE("1/2/10/47","/",""",;因此,您最初拥有的是一个字符串,如:
'1/2/10/47'
?@forpas是的,正如您在“编辑:数据样本”中所看到的发布样本数据和预期结果。您没有说明您试图实现的目标,并且从非工作代码中根本看不出。@forpas我简化了初始请求,但是想法是在REPLACE(…)中实现一个WHERE entity_id,而entity_id是一个int。但是REPLACE(…)的内容是一个字符串,所以它不起作用。因为它是生成('1','2','10','47'),而不是('1','2','10','47')。最初的请求是从目录(category)实体(varchar)中选择值,其中实体(id位于"CONCAT",REPLACE("1/2/10/47","/",""",;因此,您最初拥有的是一个字符串,如:
'1/2/10/47'
?@forpas Yes,如您在“编辑:数据样本”中所见
set @entity = '1/2/10/47';

select * from catalog_category_entity_varchar
where find_in_set(entity_id, replace(@entity, '/', ','))
| entity_id | value |
| --------- | ----- |
| 1         | ok    |
| 2         | ok    |
| 10        | ok    |
| 47        | ok    |