jdbc-mysql如果变量为null,“+变量+”的值会发生什么变化?

时间:2015-05-24 14:48:55

标签: mysql jsp jdbc null

我收到了以下字符串

"SELECT song_title,artist FROM SONG WHERE SONG_TITLE='"+title+"' AND ARTIST='"+artist+"' ";

如果字符串艺术家为空,'“+ artist +”'的值是多少?是'+ + artist +''null?

1 个答案:

答案 0 :(得分:1)

它会创建一个看起来像我确定你可以猜到的字符串:

SELECT song_title,artist FROM SONG WHERE SONG_TITLE='Uptown Funk You Up' AND ARTIST=''

因此,搜索只会找到标题为“Uptown Funk You Up”的歌曲,其中艺术家为空或NULL。如果你有一个标题是'Uptown Funk You Up'并且艺术家是“Mark Ronson”,那么它将不会在你的数据库中找到一行。

如果这不是你的意图,那么你需要在创建查询之前或创建查询时使用OR逻辑比较或一些额外的逻辑。测试标题或艺术家是否为空字符串,并更改您的查询(下面的伪代码,而不是PHP saavy)

query = "SELECT song_title,artist FROM SONG WHERE "
if title != "" then
    query += "title='"+title+"'"

if artist != "" then
    query += " AND artist='"+artist+"'"

results = mySQL(query)

那有道理吗?这有帮助吗?