我不是布爾表達式的學習者,但這似乎讓我頭疼。 在我的應用程序中,當我搜索一個用戶時,我使用這個MYSQL語句從我的數據中接收到某些值。布爾邏輯語法和MYSQL語法問題
SELECT `u3`.`username`,
CASE WHEN `u3`.`username` IS NULL THEN 'Not Existing'
ELSE 'Existing' END is_following
FROM `userinfo` `u3` WHERE `u3`.`username` LIKE '%".mysql_real_escape_string($data)."%' OR `u3`.`email` LIKE '%".mysql_real_escape_string($data)."%'
UNION
SELECT `u2`.`username`,
CASE WHEN `u2`.`username` IS NULL THEN 'Follow'
ELSE 'Following' END is_following
FROM
`userinfo` `u1` LEFT JOIN `followers` `f`
ON `u1`.`username` = `f`.`source_id`
LEFT JOIN `userinfo` `u2`
ON `f`.`destination_id` = `u2`.`username`
AND (`u2`.`username` LIKE '%".mysql_real_escape_string($data)."%' OR `u2`.`email` LIKE '%".mysql_real_escape_string($data)."%')
WHERE
`u1`.`username` = '$name'
現在上面的語法將返回這些值,用戶名和我自己的元數據。例如,它會返回
set of values 1: (davies and Existing)[if davies is in the userinfo table] AND (davies and Following)[if davies is following halex in the followers table]
OR
set of values 2: (null and Not Existing)[if davies is not in the userinfo table] AND (null and not followed)[davies does not exist]
OR
set of values 3: (davies and Existing)[if davies is in the userinfo table] AND (null and Not Following)[if davies is not following halex]
這些設定值我收到的,如果語句來,所以我可以篩我需要一個向我的用戶顯示這個簡單的信息 davies and Following
或davies and Follow[if davies is not following halex]
或User Does not Exist
現在我不確定是否應該更改我的SOL語句的結構,或者我可以通過if and else
語句獲得更好的處理此邏輯的方法 這是我的if else
語句的結構,但它似乎不起作用我想要的方式
if(username != null && metadata.contains("Existing"))//user exist
{
value = username;
//user exists but skip
}else
{
if(username != null)
{
map = new HashMap<String, String>();
map.put(TAG_USERNAME, value);
map.put(TAG_METADATA, metadata);
listvalue.add(map);
}else
{
//user does not exist
Log.i("search ", "user does not exist");
}
}
上面的代碼屬於android。 謝謝任何建議表示讚賞。再次感謝提前。
你在用什麼語言編寫最後的代碼示例(「if(username!= null && metadata.contains(」Existing「))// user exists ....」示例)? –
@BenGribaudo languague是android –