我正在使用 JSL 從 MySQL 資料庫檢索資料。但是,我遇到了一個問題,即 SQL 查詢中的過濾條件預設不區分大小寫。這意味著無論過濾器值的大小寫如何,傳回的結果都是相同的。
以下是產生相同結果的兩個腳本:
腳本1:
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DATABASE=my_database;DSN=my_dsn;PORT=3306;PWD=my_password;SERVER=localhost;UID=my_user;"
),
QueryName( "test_data" ),
Select(
Column( "Column1", "t1" ),
Column( "Column2", "t1" ),
Column( "Column3", "t1" )
),
From( Table( "test_data", Alias( "t1" ) ) ),
Where(
Not Or(
In List(
Column( "Column1", "t1" ),
{"A"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
)
) << Run;
腳本2:
New SQL Query(
Version( 130 ),
Connection(
"ODBC:DATABASE=my_database;DSN=my_dsn;PORT=3306;PWD=my_password;SERVER=localhost;UID=my_user;"
),
QueryName( "test_data" ),
Select(
Column( "Column1", "t1" ),
Column( "Column2", "t1" ),
Column( "Column3", "t1" )
),
From( Table( "test_data", Alias( "t1" ) ) ),
Where(
Not Or(
In List(
Column( "Column1", "t1" ),
{"a"},
UI( SelectListFilter( ListBox, Base( "Categorical" ) ) )
)
)
)
) << Run;
How can I modify the New SQL Query function in my JSL scripts to make the filtering conditions case-sensitive?
感謝您的幫忙!
JMP 的人員很可能更了解,但您知道 SQL 查詢是什麼樣子嗎?我想你可以透過轉換為自訂 SQL 來看到它

另外你的資料庫是如何配置的?如果您在其他應用程式中執行查詢,您會得到相同的結果嗎?我不熟悉 MySQL,但也許預設情況下這些是不區分大小寫的https://dev.mysql.com/doc/refman/8.4/en/case-sensitivity.html
SQL語句類似這樣:
SELECT t1.`Column1`, t1.`Column2`, t1.`Column3`
FROM test_data t1
WHERE ( NOT ( ( ( t1.`Column1` IN ( 'A' ) ) ) ) ) ;
I know that adding the BINARY keyword in SQL can enforce case sensitivity, for example:
SELECT `Column1`, `Column2`, `Column3`
FROM `test_data` AS `t1`
WHERE BINARY `Column1` NOT IN ('A');And using the open Database function, I can execute SQL statements directly. However, I am particularly interested in whether the New SQL Query function in JSL can achieve the same case-sensitive effect.
謝謝您的幫忙!
Got it, that would be similar to referencing SQL statements in open Database功能。謝謝!