从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 (将#修改为@)