Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 限制mysql查询中的str字符_Python_Mysql - Fatal编程技术网

Python 限制mysql查询中的str字符

Python 限制mysql查询中的str字符,python,mysql,Python,Mysql,我有一个python脚本,可以从MySQL数据库中提取查询信息 if 'IMPALA_AUDIT' in table: query = "SELECT ID, EVENT_TIME, ALLOWED, SERVICE_NAME, lower((REPLACE(USERNAME,'@UED.NET', ''))), IMPERSONATOR, IP_ADDR, OPERATION, QUERY_ID, SESSION_ID, STATUS, DATABASE_NAME, OB

我有一个python脚本,可以从MySQL数据库中提取查询信息

 if 'IMPALA_AUDIT' in table:
        query = "SELECT ID, EVENT_TIME, ALLOWED, SERVICE_NAME, 
lower((REPLACE(USERNAME,'@UED.NET', ''))), IMPERSONATOR, IP_ADDR, 
OPERATION, QUERY_ID, SESSION_ID, STATUS, DATABASE_NAME, OBJECT_TYPE, 
TABLE_NAME, PRIVILEGE, REPLACE(REPLACE(OPERATION_TEXT,CHAR(X'0D'),' 
'),CHAR(X'0A'),' ') FROM " + table + ";"
        pull.create_data_file(query, 'IMPALA_AUDIT.DATA1') 
我正在尝试将操作文本的结果限制为10个字符。 这就是我尝试过的:

REPLACE(REPLACE LEFT((OPERATION_TEXT, CHAR(X'0D'),' '),10),CHAR(X'0A'),' ')

从你的问题来看,不清楚为什么
左(转换(使用utf8的操作文本),10)或
左(UNHEX(操作文本),10)
没有返回你想要的结果


我敢肯定,您的错误源不是在十六进制格式的表示中转义单引号,这不是MySQL的方法。

我可以用

LEFT(REPLACE(REPLACE(OPERATION_TEXT,CHAR(X'0D'),' '),CHAR(X'0A'),' '),5) 

OPERATION\u TEXT
的列定义是什么?您是否正在尝试替换空白字符,而不是将其计入10?您是否收到错误消息或不喜欢的结果?这是我的错误:_mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的mysql服务器版本对应的手册,以了解可在第1行的IMPALA_AUDIT_EVE中使用的接近“LEFT”((OPERATION_TEXT,CHAR(X'0D'),''),5),CHAR(X'0A'),'')的正确语法。”)这是我原始查询的结果。操作测试从插入开始:2^\1510895172000^\1^\impala^\a00848^\172.19.22.11^\DML^\d24796babd93be63:d8d6e6a6814a4093^\1548e99a9a4101c1:1cb88b5a8c3830ab^\ed撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴撴25780,所以我猜操作_文本是以十六进制格式存储的?或者你想要十六进制字符串的前十个字符?我想我想要十六进制字符串的前十个字符。我没有写原始脚本,十六进制字符对我来说是新的。基本上,我希望操作文本的结果是“插入到”而不是“插入到ed\u客户\u接触点…等等”