我正在使用
将某些文本与文本字段进行比较
# Configure the train OP for TRAIN mode.
if mode == tf.estimator.ModeKeys.TRAIN:
optimizer = tf.train.AdamOptimizer(learning_rate=0.001)
train_op = optimizer.minimize(
loss=loss,
global_step=tf.train.get_global_step())
return tf.estimator.EstimatorSpec(
mode=mode,
loss=loss,
train_op=train_op,
export_outputs={'marks': tf.estimator.export.RegressionOutput(logits)})
我还想将查询字符串与另一个文本字段进行比较,但是要注意的是,如果该字段包含文本,则我想排除没有匹配项的结果,但是如果文本字段为空,我不想排除结果。
换句话说,我不能只说:
WHERE MATCH(dbase-field) AGAINST('$querystring' IN NATURAL LANGUAGE MODE).
因为我相信当dbase-field2上没有匹配项时,这总是会过滤掉结果,但是我只希望d-basefield2中有东西时进行过滤。
我想做的是(伪代码):
WHERE MATCH(dbase-field) AGAINST('$querystring' IN NATURAL LANGUAGE MODE) AND
MATCH(dbase-field2) AGAINST('$querystring' IN NATURAL LANGUAGE MODE)
在MYSQL中是否有可能使用CASE END做到这一点?
答案 0 :(得分:1)
您应该能够:
WHERE MATCH(dbase-field) AGAINST('$querystring' IN NATURAL LANGUAGE MODE) AND
(dbase-field2 IS NULL OR
MATCH(dbase-field2) AGAINST('$querystring' IN NATURAL LANGUAGE MODE)
)