$dir = Volumes/animals/big
我从mysql表中选择值,从某个路径开始:
$sql = "SELECT path FROM files WHERE id = ? AND path LIKE '$dir%'";
$q = $pdo->prepare($sql);
$q->execute([$id]);
$array = $q->fetchAll(PDO::FETCH_ASSOC);
array(4) {
[0]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/horses/shetland/amy.jpg"
}
[1]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/horses/shetland/sara.jpg"
}
[2]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/horses/shire/lord.jpg"
}
[3]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/elephant/borneo/mila.jpg"
}
[4]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/map.jpg"
}
我只需要每个子路径的一个条目。这意味着,这里有三个条目以“volumes/animals/big/horses”开头。我只需要一个。我想达到的结果是:
array(2) {
[0]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/horses/shetland/amy.jpg"
}
[1]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/elephant/borneo/mila.jpg"
}
[2]=>
array(1) {
["path"]=>
string(149) "Volumes/animals/big/map.jpg"
}
我不知道怎样才能做到这一点。我很感激你的任何想法。
重要提示:我需要在mysql中直接选择这个过滤器。不是用php
1条答案
按热度按时间uelo1irk1#
这可以在mysql中完成,因为您将路径的顶层传递到查询中。按以下方式更改查询:
输出时间
$dir = 'Volumes/animals/big';
: