gpt4 book ai didi

mysql - 用户输入mysql语句

转载 作者:行者123 更新时间:2023-11-29 06:47:57 25 4
gpt4 key购买 nike

我有一个 bash 脚本,我想用它从数据库中提取 IP 地址。我似乎无法填充 1 美元。

命令是:./goto.sh 2010。

我希望以 2010 年为时间并在数据库中搜索它。

goto.sh:

#!/bin/bash
ip=`mysql -Ns wksips -e 'SELECT IP FROM ips WHERE ID LIKE '%'''$1''';`

echo $ip

我有 % 符号,因为所有单位都以 wks 开头,例如 wks2010。

我尝试过更改引号,但在 mysql 中运行时仍然失败。

++ mysql -Ns wksips -e '从 ips 中选择 IP,其中 ID 类似于 %$1'ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本对应的手册,了解在第 1 行“%$1”附近使用的正确语法

感谢任何帮助。

最佳答案

我会这样写:

ip=$(mysql -Ns wksips -e "SELECT IP FROM ips WHERE ID LIKE '%$1'")

在 shell 参数级别使用双引号,这允许像 $1 这样的变量在双引号字符串内展开。

然后仅使用单引号来分隔 SQL 语法中的字符串文字。

在 shell 中进行命令替换时,我更喜欢使用 $(...) 而不是反引号。使用 $(...) 非常棒,因为如果命令本身需要一些命令替换,您可以根据需要继续嵌套这些结构。使用反引号做同样的事情需要反斜杠,这会让人发疯。

关于mysql - 用户输入mysql语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48631735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com