微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从Linux Bash到mysql:选择或删除具有外部值的记录

如何解决从Linux Bash到mysql:选择或删除具有外部值的记录

我有一个MariaDB(MysqL数据库,其表如下所示:

MariaDB [DevicesPool]> show columns from Dirs_and_Names;
    +-----------------+--------------+------+-----+---------+----------------+
    | Field           | Type         | Null | Key | Default | Extra          |
    +-----------------+--------------+------+-----+---------+----------------+
    | LNR             | int(11)      | NO   | PRI | NULL    | auto_increment |
    | D_Nr            | varchar(2)   | NO   |     | NULL    |                |
    | Filename        | varchar(100) | NO   |     | NULL    |                |
    | Path_and_File   | varchar(250) | NO   |     | NULL    |                |
    +-----------------+--------------+------+-----+---------+----------------+
    4 rows in set (0.000 sec)

背景:在此表中存储了我从不同设备收集的所有视频文件。 我的目的是收集此表中的视频文件以移至另一个存储设备, 或删除它,包括删除或更改表中的记录。 我的想法是在(临时)列表中收集一组视频文件,然后开始进行批处理。

但是首先,我做了一些基本的测试参数转发,但没有成功。

首先,我正在使用批处理将数字放入包含以下内容的字符串(id)中218。

然后,我想用MysqL -e命令显示一条记录,以选择或删除LNR包含ID的记录,该记录是我以前批量分配的。

类似这样的内容(引号内的$ id):

id=218; MysqL -uuser -psecret -e 'use DevicesPool; SELECT * FROM Dirs_and_Files WHERE LNR="$id";'

尽管在MysqL环境中该记录存在,但查询没有给出结果。

MariaDB [DevicesPool]> SELECT * FROM Verz_und_Namen WHERE LNR=218;
    +-------+------+------------------+----------------------------------------------------+
    | LNR   | F_Nr | Fileiname        | Path_and_File                                      |
    +-------+------+------------------+----------------------------------------------------+
    | 218   | 01   | King_Kong.mp4    | /home/user/Movies/King_Kong.mp4                    |
    +-------+------+------------------+----------------------------------------------------+
    1 row in set (0.001 sec)

执行此命令时($ id不加引号):

id=218; MysqL -uuser -psecret -e 'use DevicesPool; SELECT * FROM Dirs_and_Names WHERE LNR=$id;'

然后我收到一个错误

ERROR 1054 (42S22) at line 1: UnkNown column '$id' in 'where clause'

所以,我的问题在这里

如何使用批处理外部变量(字符串?)作为MysqL -e命令中的参数?确实,如何选择或删除具有外部分配ID的记录?

谢谢。

-Linuxfluesterer

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。