社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Parfait

Parfait 最近创建的主题
Parfait 最近回复了
6 年前
回复了 Parfait 创建的主题 » 使用python时SQL mycursor.execute INSERT代码失败

考虑将准备好的SQL语句与数据分离的查询参数化,并避免处理混乱的引号或连接:

sql = "INSERT INTO characters VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)"

data = [1,"Bob","Sagen",7,4,4,"Will","Bob's Abs Capacity","Left Hook","Forhead"]

mycursor.execute(sql, data)
6 年前
回复了 Parfait 创建的主题 » Python只在SQLite数据库中插入一行

避免循环,运行一个 INSERT INTO ... SELECT 查询。现在,您在循环内外重用同一个游标,这会导致处理问题。使用两个不同的游标或有效地组合并让数据库引擎运行操作查询:

sql = '''INSERT INTO Counts (org, [count])
         SELECT SUBSTR(email, INSTR(email, '@')+1) AS org, 
                SUM(count) as [count]
         FROM Em 
         GROUP BY org 
         ORDER BY count DESC
      '''

cur.execute(sql)
conn.commit()
6 年前
回复了 Parfait 创建的主题 » 如何在Windows 10命令提示符下在MySQL中正确执行SQL文件?

MySQL CLI(命令行界面)与其他CLI s或shell程序一样,包括数据库(Postgres的psql、SQLite的sqlite3、SQL Server的sqlcmd、Oracle的sqlplus)、langauges(python.exe、perl.exe、php.exe、r.exe)还有一些是可执行文件(.exe),它们不像大多数软件.exe那样使用gui启动,而是在终端窗口中引发会话。

命令行解释器(如windows的powershell和cmd.exe)或unix的(macos/linux)bash终端用于启动此类cli会话。实际上,有两种方法可以运行mysql命令:

  1. 呼叫 mysql.exe 没有开长会的争论。

  2. 启动mysql会话并运行单独的调用。

您的问题是上面两种方法的结合,在这两种方法中,您尝试对 mysql.exe文件 带着论据 里面 mysql.exe文件 或者在会话中运行其顶级参数。在cli中,解析器只解释特殊的mysql命令,如 source 直接SQL查询不可执行, mysql ,调用或连接参数( -h, -u )如果没有它的shell命令调用方: \! .

只需在cli会话之外使用适当的调用:

cd C:\amp64\bin\mysql\mysql5.7.23\bin
mysql -h localhost -u bookorama -p < bookorama.sql

或在CLI会话中:

cd C:\amp64\bin\mysql\mysql5.7.23\bin
mysql -h localhost -u bookorama -p
mysql> source bookorama.sql

尽管如此,你可以做相反的事。

  • 在外部运行命令查询:

    mysql -h localhost -u bookorama -p -e "source bookorama.sql"
    
  • 呼叫内部终端呼叫:

    mysql> \! mysql -h localhost -u bookorama -pXXXXX < bookorama.sql
    
6 年前
回复了 Parfait 创建的主题 » 在python中使用数据帧避免for循环

考虑 merging 这两个数据帧保持彼此之间的匹配,然后将pandas系列向下转换为 list . 目前,您正在将numpy数组(不是单个值)或0存储到列表中。

merged_df = pd.merge(GroupedCode, ICD9, left_on='ICD9CMCode', right_on='Code9')

Freq = merged_df['TotalDiag'].tolist()

甚至考虑 unique() 对于多个内部联接匹配的唯一值。

Freq = merged_df['TotalDiag'].unique().tolist()
6 年前
回复了 Parfait 创建的主题 » 从r插入mysql

考虑为运行sql的任何应用程序层(如r)设置参数化的编程行业标准。使用这种方法,您可以避免任何字符串插值或混乱的引号附件的需要。r的dbi标准有几种方法,其中之一是 sqlInterpolate :

# PREPARED STATEMENT (NO DATA) QMARKS REQUIRED BUT NAMES CAN CHANGE
sql <- "INSERT INTO trade_data (Col1, Col2, Col3, col4) 
        VALUES (?param1, ?param2, ?param3, ?param4)"

ch <- DBI::dbConnect(MySQL())
dbSendQuery(ch, 'set character set "utf8"')
dbSendQuery(ch, 'SET NAMES utf8')

for (i in 1:nrow(test)) {
  # BIND PARAMS
  query <- sqlInterpolate(conn, sql, param1 = "0", param2 = test[i, 1], 
                          param3 = test[i, 2], param4 = test[i, 3])
  # EXECUTE QUERY
  dbSendQuery(ch, query)
}