问题描述
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";'
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 (将#修改为@)