我对SQL还是很陌生,因此迫切需要以下方面的支持:
我要查询的表的其中一列包含非常长的文本值:因此,我只想将输出限制为某些类型。
我想获得相同的内容作为查询的输出,限于[a-z] [A-Z] [0-9],例如:
有人有什么主意吗?
非常感谢您
答案 0 :(得分:0)
您没有提到要使用哪个SQL引擎,但是大多数引擎都支持字符串函数REPLACE,该函数可以使用空字符串替换所需的任何字符以将其删除。您将必须嵌套其中的几个来摆脱不同的字符。检查数据库引擎的文档中的语法。 例如:
SELECT REPLACE(REPLACE('Hello /% World, 2019, '/', ''), '%','')
通常,我认为这不是数据库引擎的工作,您可以在表示层中完成。
HTH
答案 1 :(得分:0)
最佳选择:删除所有不留空格的特殊字符
SELECT REGEXP_REPLACE(your_column, '[^0-9A-Za-z]', '') AS newfield
FROM tablename;
删除许多字符,并留出空格以删除相同数量的字符
SELECT TRANSLATE(columnname,'!@#$%^&*()',
' ' ) AS newfield
FROM tablename;
如果您只想替换一个字符
SELECT REPLACE('columnname', '%', '') AS newfield
From tablename;
如果您正在寻找特别的东西(您想找到“ Hello World 2019”一词)
Select ‘Hello World 2019' AS newfield
From tablename
WHERE columnname like ‘Hello%’ AND columnname like ‘%World%’ AND columnname like ‘%2019’;
假设“ Hello”始终是开头,而“ 2019”总是结尾,那么您需要所有字段。如果您需要其他字段,则可能也需要这些。喜欢,
Select TableID, columnname, ‘Hello World 2019' AS newfield
From tablename
WHERE columnname like ‘Hello%’ AND columnname like ‘%World%’ AND columnname like ‘%2019’;
答案 2 :(得分:0)
$string = 'Hello /% World, 2019';
从PHP字符串中剥离除字母和数字之外的所有字符:
$res = preg_replace("/[^a-zA-Z0-9]/", "", $string);
除字母,数字和空格之外的所有字符都剥离:
$res = preg_replace("/[^a-zA-Z0-9\s]/", "", $string);
答案 3 :(得分:0)
假设支持regexp_replace
,
regexp_replace(column, '[^a-zA-Z0-9]', '')