【发布时间】:2019-12-05 06:00:37
【问题描述】:
我正在尝试对表执行 SELECT * 查询,它有一个 uniquerparameter 列,我需要使用它来过滤数据......并且出现了这个错误:
SQLSTATE[42000]: [Microsoft][ODBC Driver 13 for SQL Server][SQL
Server]Conversion failed when converting from a character string to
uniqueidentifier. (SQL: select * from [vw_DigitalLibrary_History] where
[ManualBook_SectionParagraphGlobalID] = '588237FB-7A69-40F8-AE85-
9596EEF44894') (View: C:\inetpub\wwwroot\digital-
library\resources\views\admin\going_live.blade.php)
这是唯一标识符列:ManualBook_SectionParagraphGlobalID
使用 laravel 生成的相同查询及其错误:
select * from [vw_DigitalLibrary_History] where
[ManualBook_SectionParagraphGlobalID] = '588237FB-7A69-40F8-AE85-
9596EEF44894'
在 SQL 管理工作室中像魅力一样工作
我试过这个:
$FutureHist = App\History::where('ManualBook_SectionParagraphGlobalID', $split[1])->limit(1)->get();
试图转换它,但我认为它作为字符串到达 SQL 服务器
$split = explode("=", $Future[0]["Filter"]);
$FutureHist = App\History::where('ManualBook_SectionParagraphGlobalID', TRY_CONVERT($split[1], uniqueidentifier))->limit(1)->get();
我希望 $FutureHist 变量能够获得结果,但我还没有找到绕过此错误的方法。
解决方案: 对于那些面临同样错误的可怜的灵魂,你可以按照 dparoli 所说的那样做,但是 '' 部分存在一些问题.. 这就是你应该这样说的
$FutureHist = App\History::whereRaw("ManualBook_SectionParagraphGlobalID = CONVERT(UNIQUEIDENTIFIER, ".$split[1].")")
->limit(1)->get();
【问题讨论】:
标签: laravel laravel-blade