Mysql db表第一行中的元素返回:列名、两个破折号及其值
我正在使用powershell存储和获取数据库中的数据 我在从表的第一行获取奇怪的数据时遇到问题。 看起来像这样 这是我的powershell脚本Mysql db表第一行中的元素返回:列名、两个破折号及其值,mysql,sql,database,powershell,Mysql,Sql,Database,Powershell,我正在使用powershell存储和获取数据库中的数据 我在从表的第一行获取奇怪的数据时遇到问题。 看起来像这样 这是我的powershell脚本 Invoke-SqlCmd -ServerInstance 'localhost' -inputfile C:\Users\Matej\Desktop\SQLQuery2.sql function insertToDb($line, $PlaylistId){ $position = $line.ToString().Split(',').G
Invoke-SqlCmd -ServerInstance 'localhost' -inputfile
C:\Users\Matej\Desktop\SQLQuery2.sql
function insertToDb($line, $PlaylistId){
$position = $line.ToString().Split(',').Get(0)
$songName = $line.ToString().Split(',').Get(1)
$artistName = $line.ToString().Split(',').Get(2)
$link = $line.ToString().Split(',').Get(4)
Write-Output 'PlaylistId: '$PlaylistId
$insertSongQuery = "
INSERT INTO SONG
(position,name,artist,link,playlist_id)
VALUES
('$position','$songName','$artistName','$link','$PlaylistId')
GO
"
#Invoke-SQLcmd -ServerInstance 'localhost' -query $insertSongQuery -U vikiUser -
Password 1234 -Database ProjectDb
}
function getPlaylist{
$shortName = $PSItem.ToString().Split(',').Get(0);
$name = $PSItem.ToString().Split(',').Get(1);
$insertquery = "
INSERT INTO PLAYLIST
(name, type)
VALUES
('$name','country')
GO
"
$getPlaylistIdQuery = "
SELECT ID
FROM PLAYLIST
WHERE PLAYLIST.name = '$name'
GO
"
Invoke-SQLcmd -ServerInstance 'localhost' -query $insertquery -U vikiUser -Password 1234 -Database ProjectDb
$PlaylistId= Invoke-SQLcmd -ServerInstance 'localhost' -query $getPlaylistIdQuery -U vikiUser -Password 1234 -Database ProjectDb
(Invoke-WebRequest -Uri https://spotifycharts.com/regional/$shortName/daily/latest/download).Content > out.csv
cat out.csv | Select-Object -skip 2 | select -First 10 | ForEach-Object {insertToDb $_ $PlaylistId}
#get 10
#insert Song(position,name,artist,playlist id)
}
cat C:\Users\Matej\Desktop\countries.txt | ForEach-Object {getPlaylist($_)}
我的想法是,它以列和行的形式获取数据库,在第一行上方,列之间有对齐数据库外观的线条,这就是为什么我获取第一行的名称和值。我怎么能越过这一关?
我尝试分配一个全局“flag”变量,并将第一个值设置为0,将其他值设置为其正常值,但我无法在powershell中编辑全局值(我猜)。
我该怎么办?正如Lee指出的,这不是一个错误,这是有标题的表格数据的默认值。所有DB都可以。如果不需要标题,请点引用数据值。由于您没有显示任何示例数据,因此需要输入/输出 所以,像这样的事情
cat out.csv |
Select-Object -First 10 |
ForEach-Object {insertToDb $PSItem.playlist_id}
这就是——通常——豪华的显示系统。在获得该显示时,
$playlyid
变量中有什么?尝试$playlyid |获取成员
,或$playlyid |选择对象-属性*
,或$playlyid.GetType()
。为什么不直接使用?